查询模型
Spatial采用两级查询模型来实现空间查询和空间连接
空间查询分为两个独立的操作,两次操作的结果合成为最终结果
两个操作分别称为主过滤Primaryfilter和次过滤Secondary filter
主过滤先进行粗略的比较,快速生成查询结果的候选几何对象集合,计算代价小
次过滤对来自主过滤的候选集合进行精确的匹配,生成精确的最终结果,计算代价高,但主过滤大大降低了计算复杂度
Spatial采用空间索引来实现主过滤,快速从大量数据集中找出查询结果的候选集
某些操作可以只进行代价低的主过滤,如地图显示的缩放所需进行的查询
空间索引
Oracle Spatial的两种空间索引
R树R-tree
四叉树quadtree
分别适合不同的应用场合
可以在一个几何字段上同时创建两种索引
使用ALTER INDEX的add_index参数
在空间运算中可以指定使用哪个索引
如SDO_RELATE的idx_tab1/idx_tab2选项
R-tree和Quad-tree比较
| R-Tree | Quad-tree |
| 几何形的近似形不可调节,采用 最小包围盒 | 可以通过设定分片级别和数量来调节 几何形的近似形 |
| 索引的创建和调整容易 | 调整较复杂,会显著影响性能 |
| 相对较少的存储空间 | 相对较大 |
| 对最近邻居SDO_NN查询较快 | 对最近邻居查询较慢 |
| 更新数据的效率较低 | 频繁更新数据不会影响索引的性能 |
| 可以多到四维空间索引 | 只能在二维空间索引 |
| SDO_WITHIN_DISTANCE查询效率高 能够实现全球的索引 |
|
最后
以上就是乐观书本最近收集整理的关于Oracle Spacial(空间数据库)查询模型和空间索引的全部内容,更多相关Oracle内容请搜索靠谱客的其他文章。
发表评论 取消回复