Oracle Spatial函数SDO_CS.Transform(value)结果非常慢

Oracle Spatial函数SDO_CS.Transform(value)结果非常慢,第1张

概述我有一个自定义视图,用于查询几何列中的空间数据并提取纬度/经度值.但是,检索过程非常慢,并且需要最多5到10分钟才能检索到视图数据. 这是我的观点: CREATE OR REPLACE FORCE VIEW PoleData( G3E_FID, X_COORD, Y_COORD, LATITUDE, LONGITUDE)AS SELECT P.g3e_fi 我有一个自定义视图,用于查询几何列中的空间数据并提取纬度/经度值.但是,检索过程非常慢,并且需要最多5到10分钟才能检索到视图数据.

这是我的观点:

CREATE OR REPLACE FORCE VIEW PoleData(   G3E_FID,X_COORD,Y_COORD,LATITUDE,LONGITUDE)AS   SELECT P.g3e_fID,T2.X * 1000 AS x_coord,T2.Y * 1000 AS y_coord,T.Y AS latitude,T.X AS longitude     FROM PolePoint P,table (             SDO_UTIL.GETVERTICES (SDO_CS.transform (P.G3E_GEOMETRY,8265))) T,table (SDO_UTIL.GETVERTICES (P.G3E_GEOMETRY)) T2    WHERE P.ltt_ID = 0   UNION   SELECT P.g3e_fID,T.X AS longitude     FROM PoleDetailPoint P,table (SDO_UTIL.GETVERTICES (P.G3E_GEOMETRY)) T2    WHERE P.ltt_ID = 0;

G3E_GEOMETRY列是SDO_GEOMETRY类型. PolePoint表有1,310,629行,而PoleDetailPoint有100行.此表中的数据每天更新,而视图用于报告目的.

我尝试使用status = cleanup参数重建空间索引.但这没有任何区别.

我们的版本是Oracle 11.2.0.3.

有关检索此类视图/数据的任何提示均表示赞赏.或者我可以使用任何其他空间函数来更快地实现这一目标?

解决方法 尝试使用UNION ALL而不是UNION:

SELECT P.g3e_fID,T.X AS longitude  FROM PolePoint P,table (          SDO_UTIL.GETVERTICES (SDO_CS.transform (P.G3E_GEOMETRY,table (SDO_UTIL.GETVERTICES (P.G3E_GEOMETRY)) T2 WHERE P.ltt_ID = 0UNION ALLSELECT P.g3e_fID,T.X AS longitude  FROM PoleDetailPoint P,table (SDO_UTIL.GETVERTICES (P.G3E_GEOMETRY)) T2 WHERE P.ltt_ID = 0;

性能下降的另一个潜在来源是你直接在P.G3E_GEOMETRY上使用两个SDO_UTIL.GET_VERTICES调用而另一个在P.G3E_GEOMETRY的变换上你将基本上有两个顶点列表的叉积的事实,所以例如,如果特定的P.G3E_GEOMETRY包含5个顶点,那么对于该5个顶点P.G3E_GEOMETRY,对于T和T2的25种可能组合中的每一种,最终将得到5 * 5条记录.我不知道顶点顺序是否由SDO_CS.transform函数维护,但如果是,则可以通过在查询的每一半中添加和t1.ID = t2.ID谓词来提高性能:

SELECT P.g3e_fID,table (SDO_UTIL.GETVERTICES (P.G3E_GEOMETRY)) T2 WHERE P.ltt_ID = 0   AND T.ID = T2.IDUNION ALLSELECT P.g3e_fID,table (SDO_UTIL.GETVERTICES (P.G3E_GEOMETRY)) T2 WHERE P.ltt_ID = 0   AND T.ID = T2.ID;
总结

以上是内存溢出为你收集整理的Oracle Spatial函数SDO_CS.Transform(value)结果非常慢全部内容,希望文章能够帮你解决Oracle Spatial函数SDO_CS.Transform(value)结果非常慢所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/1160496.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-01
下一篇 2022-06-01

发表评论

登录后才能评论

评论列表(0条)

保存