Gbase_Reed
作者Gbase_Reed·2017-04-10 14:33
数据库运维工程师·南大通用

GIS性能测试

字数 2037阅读 1241评论 0赞 0

1 测试总结
本次测试目标重点关于shape文件导入导出的效率以及地理空间数据的范围查询性能。范围查询的SQL方式较多,此次测试已如下2种为例:
方式1 select count(*) from city
where se_xmin(geom)>100.5
and se_xmax(geom)<118.5
and and se_ymax(geom)<38.7
and se_ymin(geom)>30.5
方式2 select count(*) from city
where ST_within(geom,ST_Geomfromtext('polygon((100.5 30.5,100.5 38.7,118.5 38.7,118.5 30.5,100.5 30.5))',55063))
范围查询的效率除跟SQL本身语法有关外 SQL返回的结果集所占表总数据量的比重也有很大的影响,本次测试中我们分别已5%、10%、20%等情况比较查询性能的差异,测试结果参考如下:
测试场景 测试细则 测试结果
shape数据导入 Shape文件1.09G 9分32秒(1.96M/s)
shape数据导出 Shape文件1.09G 45.7s(24.4M/s)
范围查询方式1 结果集/全表数据量: 5% 1.572s

结果集/全表数据量:  10%    2.324s
结果集/全表数据量:  20%    2.626s
结果集/全表数据量:  50%    3.148s

范围查询方式2 结果集/全表数据量: 5% 0.949s

结果集/全表数据量:  10%    1.461s
结果集/全表数据量:  20%    2.054s
结果集/全表数据量:  50%    4.497s

2 测试环境

类别 名称 配置 测试表
服务器 一体机 CPU个数: 36
内存:256G
操作系统:Centos release 7.2.1511
数据库版本:GBase8tV8.5.12.10.FC4G1AEE_1.6.3.54
Spatial版本: 8.21.FC6

Shp文件大小:1.09G

总行数:2472428
GIS类型: st_multilinestring

3 性能测试
3.1 数据加载
测试用例名称 GIS数据加载
1 导入坐标信息
infoshp -o create -D test -f cityroad_polyline
2 导入数据
loadshp -o create -l city,geom -f cityroad_polyline -D test -srid <infoshp导入的srid> -c 40000

3 测试结论:9分32秒(1.96M/s)

3.2 数据卸载
1 卸载数据

 unloadshp -o init -l city,geom -f cityroad_polyline -D test   

2 测试结论:45.7秒(24.4M/s)

3.3 范围查询1
1 执行如下SQL:

select count(*) from city 

where se_xmin(geom)>100.5 and se_xmax(geom)<118.5 and se_ymax(geom)<38.5 and se_ymin(geom)>30.5
相关范围根据结果集要求会有相关变化
2 测试结论:
结果集占全表百分比50% 结果集占全表百分比20% 结果集占全表百分比10% 结果集占全表
百分比5%
3.148s 2.626s 2.324s 1.572s

3.4 范围查询2
1 执行如下SQL:

select count(*)  from city

where ST_within(geom,ST_Geomfromtext('polygon((100.5 30.5,100.5 38.7,118.5 38.7,118.5 30.5,100.5 30.5))',55063));
相关范围根据结果集要求会有相关变化
2 测试结论:
结果集占全表百分比50% 结果集占全表百分比20% 结果集占全表百分比10% 结果集占全表
百分比5%
4.497s 2.054s 1.461s 0.949s

4 意见及建议
• 建议使用16k页的dbspace存放GIS表。
• 当地理数据量较大时,建议采用分片的方式建表及存储数据。
• 当范围查询结果集较大时,建议开启PDQ加快查询速度。
• 范围查询建议使用ST_Within或者ST_Contains的写法,效率会更高。

如果觉得我的文章对您有用,请点赞。您的支持将鼓励我继续创作!

0

添加新评论0 条评论

Ctrl+Enter 发表

作者其他文章

相关文章

相关问题

相关资料

X社区推广