暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

将索引空间分解成网格层次结构

原创 seven 2023-11-28
85

将索引空间分解成网格层次结构

在 SQL Server 中,空间索引使用 B 树构建而成,也就是说,这些索引必须按 B 树的线性顺序表示二维空间数据。 因此,将数据读入空间索引之前,SQL Server 先实现对空间的分层均匀分解。 索引创建过程会将空间分解成一个四级网格层次结构。 这些级别指的是第 1 级(顶级)、第 2 级、第 3 级和第 4 级。

每个后续级别都会进一步分解其上一级,因此上一级别的每个单元都包含下一级别的整个网格。 在给定级别上,所有网格沿两个轴都有相同数目的单元(例如 4x4 或 8x8),并且单元的大小都相同。

下图显示了网格层次结构每个级别的右上角单元被分解成 4x4 网格的情况。 事实上,所有单元都是以这种方式分解的。 因此,以此为例,将一个空间分解成四个级别的 4x4 网格实际上会总共产生 65,536 个第四级单元。

Four-levels of recursive tessellation

 备注

针对空间索引进行的空间分解与应用程序数据使用的度量单位无关。

网格层次结构的单元是利用多种 Hilbert 空间填充曲线以线性方式编号的。 然而,出于演示目的,这里使用的是简单的按行编号,而不是由 Hilbert 曲线实际产生的编号。 在下图中,几个表示建筑物的多边形和表示街道的线已经放进了一个 4x4 的 1 级网格中。 第 1 级单元的编号为 1 到 16,编号从左上角的单元开始。

Polygons and lines placed into a 4x4 level-1 grid

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论