概述
查询模型
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 Spacial(空间数据库)查询模型和空间索引所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复