oracle空间索引
1、索引创建
- 添加元数据
INSERT INTO USER_SDO_GEOM_METADATA (TABLE_NAME, COLUMN_NAME, DIMINFO, SRID)
VALUES ('BEIJING_LINK', 'GEOMETRY',
MDSYS.SDO_DIM_ARRAY
(MDSYS.SDO_DIM_ELEMENT('X', -180, 180, 0.00000000050),
MDSYS.SDO_DIM_ELEMENT('Y', -90, 90, 0.00000000050)),
8307);
- 创建索引
create index idx_beijing_link on beijing_link(geometry)
indextype is mdsys.spatial_index;
- 查询索引
select * from user_sdo_index_info where index_name='IDX_BEIJING_LINK' ;
2、空间操作符使用
1、sdo_filter相交
select count(*)
from beijing_link a,
(select link_pid, geometry from beijing_link where rownum = 1) b
where sdo_filter(a.geometry, b.geometry) = 'TRUE'
and a.link_pid != b.link_pid;
2、sdo_anyinteract 和sdo_filter相似
select count(*)
from beijing_link a,
(select link_pid, geometry from beijing_link where rownum = 1) b
where sdo_anyinteract(a.geometry, b.geometry) = 'TRUE'
and a.link_pid != b.link_pid;
3、sdo_nn(geometry a,geometry b,tol c,unit)返回距离最近的前N个
select sdo_geom.sdo_distance(a.geometry, b.geometry, 0.1, 'unit=meter')
from beijing_link a,
(select link_pid, geometry from beijing_link where rownum = 1) b
where sdo_nn(a.geometry, b.geometry, 'sdo_num_res=6') = 'TRUE';
4、sdo_nn_distance返回距离
select a.link_pid,b.link_pid,sdo_nn_distance(1) distance
from beijing_link a,
(select link_pid, geometry from beijing_link where rownum = 1) b
where sdo_nn(a.geometry, b.geometry, 'sdo_num_res=10',1) = 'TRUE'
order by distance;
5、sdo_relate 判断两个几何关系
select count(*)
from beijing_link a,
(select link_pid, geometry from beijing_link where rownum = 1) b
where sdo_relate(a.geometry, b.geometry,'mask=touch') = 'TRUE'
and a.link_pid != b.link_pid;
select count(*)
from beijing_link a,
(select link_pid, geometry from beijing_link where rownum = 1) b
where sdo_relate(a.geometry, b.geometry,'mask=anyinteract') = 'TRUE'
and a.link_pid != b.link_pid;
select count(*)
from beijing_link a,
(select link_pid, geometry from beijing_link where rownum = 1) b
where sdo_relate(a.geometry, b.geometry,'mask=coveredby') = 'TRUE'
and a.link_pid != b.link_pid;
6、sdo_within_distance两个对象距离在某范围内
select count(*)
from beijing_link a,
(select link_pid, geometry from beijing_link where rownum = 1) b
where sdo_within_distance(a.geometry, b.geometry,'distance=10,unit=km') = 'TRUE'
and a.link_pid != b.link_pid;
oracle空间索引的更多相关文章
- 在oracle中创建空间索引
Oracle spatial可以方便的存储空间数据,大量的空间数据必需要使用空间索引去查询.在oracle中创建空间索引必需先建立元数据,否则无法创建索引.创建元数据的代码: insert into ...
- Oracle Spatial中的空间索引
转自cryolite原文 Oracle Spatial中的空间索引 Oracle Spatial可对空间数据进行R-tree索引,每个空间图层(Spatial Layer)的空间索引元信息都可以在US ...
- Oracle Spatial分区应用研究之六:全局空间索引下按县分区与按省分区效率差异原因分析
1.实验结论 全局空间索引下,不同分区粒度之所有效率会有不同,差异并不在于SDO_FILTER操作本身,而在于对于数据字典表的访问次数上: 分区越多.表上的lob column越多,对数据字典表的访问 ...
- Oracle Spatial 创建空间表、添加空间原表信息、添加删除空间索引
一.创建空间表 创建一个空间表tbsvrc_buffer_t ,SQL如下: create table tbsvrc_buffer_t( ID VARCHAR2(50) not null, ...
- Oracle Spatial分区应用研究之五:不同分区粒度+本地空间索引效率对比
1.实验目的 若使用本地空间索引,不同分区粒度将产生不同索引组织,其索引分区个数.大小.R-TREE树结构均不相同.那么,在什么分区粒度下的本地空间索引效率较高呢? 2实验数据 实验数据为全国2531 ...
- Oracle Spatial分区应用研究之四:不同分区粒度+全局空间索引效率对比
1.实验目的 在实验之前先回答这样一个问题——对同一份数据使用不同的分区粒度,但均创建全局空间索引,问:它们的全局空间索引一致吗? 怎样算是一致的呢?R-TREE的树结构一致算一致吗?空间索引条目数及 ...
- oracle 创建空间索引
1. 首先进行查询,判断数据是否已经建立相应的空间元数据 select * from user_sdo_geom_metadata t where t.table_name like '%表名%'; ...
- 简析将shp导入Oracle并利用geoserver将导入的数据发布
文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/. 1.环境准备 1.1 软件准备 首先要安装有支持空间数据的Oracle ...
- oracle 空间数据库说明
转:http://blog.csdn.net/jing_xin/article/details/4355642 由于最近弄一些空间数据,所以找了些oracle空间数据库的一些知识.下面是汇总: Ora ...
随机推荐
- 业余草分享100套精选1000G架构师资料课程(超1T的IT学习资料免费送)
业余草分享100套精选1000G架构师资料课程(超1T的IT学习资料免费送). 超过1024G的IT学习资料免费领取,你值得拥有! 领取资源方式,关注“业余草”公众号,回复对应的关键字 01.回复”我 ...
- Java NIO之缓冲区
1.简介 Java NIO 相关类在 JDK 1.4 中被引入,用于提高 I/O 的效率.Java NIO 包含了很多东西,但核心的东西不外乎 Buffer.Channel 和 Selector.这其 ...
- SpaceNet数据集
SpaceNet数据集 SpaceNet是DigitalGlobe商业卫星公司提供的遥感图像集合,包含一些标记信息可用作机器学习研究. SpaceNet Challenge主页: https://sp ...
- Apple 内购
关于内购所需东西: 1.测试开发证书:需要打开in-app-purchase,绑定bundleid:com.aragon.TexasPoker 2.iTunes connect 里添加内购应用: 1& ...
- Linux基础一
基本命令 useradd xxx 创建一个用户 uname 查看系统架构信息 uname -a 显示详细信息 uname -r 显示内核信息 date 显示当前网络时间 cat ...
- 【linux之挂载,Raid,LVM】
一.挂载,卸载 挂载:将新的文件系统关联至当前根文件系统卸载:将某文件系统与当前根文件系统的关联关系移除 cat /etc/mtab 存储着已经挂载的文件系统 (跟 mount 一样) mount:显 ...
- VxWorks下USB驱动总结2
3:USBD驱动详解 这一部分将要描述USBD(USB Host Driver)的典型应用.例如初始化,client注册,动态连接注册,设备配置,数据传输,同时还探讨了USBD内部设计的关键特性.这部 ...
- 运行Java Web项目报错
运行Java Web项目报错 今天,我启动服务,发现项目报错,并且是在打开登录界面时报错. 具体错误如下: org.apache.catalina.core.Standard WrapperValue ...
- SMBus
SMBus (System Management Bus,系统管理总线) 是1995年由Intel提出的,应用于移动PC和桌面PC系统中的低速率通讯.希望通过一条廉价并且功能强大的总线(由两条线组成) ...
- .Net+SQL Server企业应用性能优化笔记—精确查找瓶颈
首先我们需要部署一个测试环境,将Web项目的源代码拷到测试环境Web服务器IIS上,使得可以直接通过IE访问我们的网站.SQL Server环境可以部署在同一台机器上,条件允许的话有专门的数据库测试服 ...