① 升级iServer到最新版本,升级到11.3.0或者12.0.0
② 数据优化
1)创建字段索引和创建空间索引
当需要对地图服务、数据服务进行 SQL 字段查询时,建议在发布服务前,使用iDesktopX 对数据源内需要查询的字段先行设置字段索引和空间索引从而提高查询效率
2)对矢量数据进行抽稀简化
有时候返回的面数据数量只有1条,但是节点数超过10万个,使用 iDesktopX 对原始数据进行抽稀处理,减少节点数量
3)根据业务场景,删除项目中不需要属性字段
4)根据业务场景对数据分块存储(如全省数据,按市进行分表存储)
5)数据库类型数据集,通过iDesktopX性能诊断工具(右图3),相同环境对比 iDesktopX 查询速率与数据库客户端查询效率
③ 前端代码优化
1)返回格式优化
例如iClient JavaScript,支持返回FlatGeobuf、GeoJSON、JSON格式,推荐使用FlatGeobuf
相同数据量返回,体积由小到大:FlatGeobuf > GeoJSON > JSON
FlatGeobuf(11.1.1及以上版本),采用了二进制编码,可以显著减小文件大小,这使得数据的传输和存储更加快速和高效,需要iClient前端设置,使用方式可以参考https://blog.csdn.net/supermapsupport/article/details/131807166
2)返回数量优化
例如一次性返回10万条数据,通常前端不需要一次性返回10万条记录进行渲染,我们可以通过前端的代码控制,利用startRecord(开始查询的记录号)和expectCount(希望得到的记录数量)来实现分页查询。
3)不返回无用字段
通过iClient JavaScript代码中FilterParameter,设置返回字段fields,只返回业务需要字段,从而减少查询返回体积
4)不返回几何对象
有时候只需要属性信息,不需要几何对象的话,
地图服务可以将queryOption设置为ATTRIBUTE,只返回属性信息
数据服务可以设置hasGeometry属性为false,只返回属性信息