【发布时间】:2017-08-12 04:49:13
【问题描述】:
我有一个表 X,其中包含 800k 点的经度和纬度。 X 中的 SDO_GEOMETRY 列是 Y,它将点的坐标存储为点几何类型。我还为 Y 创建了空间索引。
我执行了一个查询来检查 这 800k 点中有多少位于距离特定(经度、纬度)(指定为 aa.bbbbbb、cc.dddddd)坐标 1000 米范围内,如下所示SQL Plus:SELECT * FROM X x WHERE sdo_geom.sdo_distance(SDO_GEOMETRY(2001,8307,
SDO_POINT_TYPE(aa.bbbbbb,cc.dddddd,NULL),NULL,NULL),x.Y,0.5) < 1000
我怀疑查询的性能很慢。花费的时间大约是 8 分钟,我希望能更快地执行它。为什么会这样?有什么方法可以让查询运行得更快吗?还是我做错了什么?请帮忙。谢谢。
【问题讨论】:
标签: database oracle oracle11g oracle-spatial