FileGDB和数据库文本检索的效率比较
分享
前提条件:
测试数据:一个包括700多w点的POI点,其中包括一个name字段,包括地名信息 分别将该测试数据存储到FileGDB和Oracle各一份,并对name字段建立BTREE索引,并通过ArcGIS Server发布两个服务,分别是filegdb_test和oracle_test. 软件版本: ArcGIS Server10.3.1 ArcSDE 10.3.1 Oracle11.2.0.4 For Linux X64
测试过程:
分别对“=”和like两个谓词进行测试。
测试1,分别查询name=’创业工场11’,都返回一条记录
在filegdb_test服务中的结果如下图:
用时891ms
在oracle_test服务中的查询结果如下图:
用时409ms
由于在两个数据源上对name字段都已经建索引了,在“=”谓词比较的时候,两者都在1s之内查出来了,速度oracle更快一些。
测试2:分别查询name like ‘%肯德基%’,该模糊查询强迫两个数据都走全表扫描。
在filegdb_test服务中的结果如下图: 用时57.2s
在oracle_test中的结果如下图: 用时3.25s
结果非常明显,oracle全表扫描速度比Filegdb要快的多。
测试3:对name字段建立全文检索索引,使用oracle的full text search测试模糊查询的速度 准备工作: 对name字段建立全文索引 exec ctx_ddl.create_preference (‘mylexer’, ‘CHINESE_LEXER’);
create index result_name_fullindex on result_shape(name) indextype is ctxsys.context parameters (‘lexer mylexer’) parallel 3;
将arcgis server 的standard_query参数设置为false
用时46ms。
结论:
文章来源:http://blog.csdn.net/liufeng1980423/article/details/50326897
测试数据:一个包括700多w点的POI点,其中包括一个name字段,包括地名信息 分别将该测试数据存储到FileGDB和Oracle各一份,并对name字段建立BTREE索引,并通过ArcGIS Server发布两个服务,分别是filegdb_test和oracle_test. 软件版本: ArcGIS Server10.3.1 ArcSDE 10.3.1 Oracle11.2.0.4 For Linux X64
测试过程:
分别对“=”和like两个谓词进行测试。
测试1,分别查询name=’创业工场11’,都返回一条记录
在filegdb_test服务中的结果如下图:
用时891ms
在oracle_test服务中的查询结果如下图:
用时409ms
由于在两个数据源上对name字段都已经建索引了,在“=”谓词比较的时候,两者都在1s之内查出来了,速度oracle更快一些。
测试2:分别查询name like ‘%肯德基%’,该模糊查询强迫两个数据都走全表扫描。
在filegdb_test服务中的结果如下图: 用时57.2s
在oracle_test中的结果如下图: 用时3.25s
结果非常明显,oracle全表扫描速度比Filegdb要快的多。
测试3:对name字段建立全文检索索引,使用oracle的full text search测试模糊查询的速度 准备工作: 对name字段建立全文索引 exec ctx_ddl.create_preference (‘mylexer’, ‘CHINESE_LEXER’);
create index result_name_fullindex on result_shape(name) indextype is ctxsys.context parameters (‘lexer mylexer’) parallel 3;
将arcgis server 的standard_query参数设置为false
用时46ms。
结论:
- 关系型数据库全表扫描的速度要比filegdb快很多。
- BTREE索引的速度关系型数据库也要比filegdb要好。
- 如果有对文本对文本查询的需求,建议使用数据库的全文检索(常用的几种的关系型数据库都提供了该功能),不要使用like。
文章来源:http://blog.csdn.net/liufeng1980423/article/details/50326897
0 个评论
推荐内容
相关问题
- 作为Desktop用户对数据的获取比较乏力,可能缺了哪些知识?
- 在windows server2008 R2 64位中安装了portal 10.5 设置好托管arcgis server站点,并用data store为托管数据库,发布数据出错
- ArcGIS数据库数据逐图幅裁剪
- Arcgis10.4 创建企业级地理数据库 “用户不具有创建数据库对象的必要权限 ”
- 图形是如何存储在数据库中的?
- arcmap字段属性表中有文本和数字组合如何只提取数字
- 请问一个高手比较简单的问题,如何将BaseCommand类中的默认的小兔子图标换成自己自定义的图标那?
- Arcgis布局视图创建文本,如何设置上标
- 发布要素服务,已注册数据库,却还是报“需要一个已注册数据库”的问题?
- 如何使用python编写比较两个属性值大小的脚本?
- arcmap 添加文本字段的标注会出现重复