[Bug]ArcSDE10.1执行ST_Geometry大数据量的大范围查询范围结果为0

在ArcSDE 10.1环境中,当查询大面积面状要素与大量点状要素之间的交集时,ST_Intersects函数返回错误结果。此问题在数据量达到50万级别时尤为明显。已确认为Bug并提交给Esri官方,建议升级至ArcGIS 10.2版本以解决。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

环境:

ArcSDE10.1 SP1

Oracle 11.2.0.3


操作步骤:

点状要素类数据量:500000+

面状要素类数据量:3条,一个面积特别大,两个一般大

使用如下SQL语句进行查询

SQL> select count(*) from bjj;

  COUNT(*)
----------
    582341

SQL> select count(bjj.objectid) as fieldCount from bjj,bjpp where sde.ST_Intersects(bjj.shape,bjpp.shape) = 1 and bjpp.objectid=3;

FIELDCOUNT
----------
         0




如上图所示,我使用该矩形是可以查询出结果的(目测),但是查询结果是0


但是如果点状要素类数据量在1000或者10000级别的数据,可以查询出正确的结果

SQL> select count(bj.objectid) as fieldCount from bj,bjpp where sde.ST_Intersects(bj.shape,bjpp.shape) = 1 and bjpp.objectid=3;

FIELDCOUNT
----------
       855

SQL> select count(*) from bj;

  COUNT(*)
----------
      1000


^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

SQL> select count(bj.objectid) as fieldCount from bj,bjpp where sde.ST_Intersects(bj.shape,bjpp.shape) = 1 and bjpp.objectid=3;

FIELDCOUNT
----------
      8247

SQL> select count(*) from bj;

  COUNT(*)
----------
     10000

在使用过程中,数据特点是点状要素类数据量大,以及查询面积大都有可能是造成该Bug的原因,但是经过大量测试点状要素类数据量大是导致该bug 的最主要的原因!



经过与美国Support的交流,认定为一个Bug

I submitted a bug request as -"ST_INTERSECTS returns zero record for a polygon that intersects largenumber of point features".

 

The tracking id of bug is #NIM096278. Ihave added your incident id 1208476 to this bug. You may like to be aware ofits updated status by visiting our customer care portal:

 

https://customers.esri.com

 

As issue is not reproducible in version10.2, upgrading geodatabase to 10.2 will be a workaround for this issue as ofnow.


美国建议用户升级到ArcGIS10.2即可,我也测试过10.2已经解决了该问题。


希望有使用ST_Geometry的朋友留意一下!


-------------------------------------------------------------------------------------------------------
版权所有,文章允许转载,但必须以链接方式注明源地址,否则追究法律责任!

出处来自:http://blog.youkuaiyun.com/linghe301
-------------------------------------------------------------------------------------------------------



评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值