GIS数据库位置数据查询效率

xusong 2014-05-15

通过ArcSDE的空间查询返回空间位置的WKT,有两种方式:

1.使用ArcSDE库函数,sde.st_astext(shape)

2.手动构造,‘Point(’||sde.st_minx(shape)||' '||sde.st_minx(shape)||')'

sde.st_astext函数定义
GIS数据库位置数据查询效率

sde.st_x函数定义
GIS数据库位置数据查询效率

测试表中存在2w+条数据,以上两种方式的查询效率有明显的差别,测试如下:

select NAME,sde.st_astext(shape) shape from POI where name like '%大%'

执行时间:18.516s

select NAME,sde.st_minx(shape)||' '||sde.st_minx(shape) shape from POI where name like '%大%'

执行时间:1.344s

 

注:sde.st_astext(shape)将SHAPE字段转换成CLOB格式返回,sde.st_minx(shape)从SHAPE字段的属性中直接获取。通过sde.st_astext(shape)获取CLOB数据后,在代码中还需要将CLOB转换为String格式,这也影响了处理效率。

 

相关推荐