查询耗时优化

查询时间是指从数据集中查询当前地图窗口中需要显示的对象所需的时间,一般与矢量数据的数据结构相关,其耗时优化可以从空间索引、数据编码等方面入手,具体如下:

  • 空间索引

    随着 GIS 数据量的逐渐增大,使得空间数据的访问速度降低,而空间索引就是用来提高数据空间查询效率的数据结构。为地图中显示的数据集创建空间索引,可以提升地图的浏览和查询效率,推荐使用R树索引和图幅索引(:文件型数据源仅支持R树索引)。

    • R树索引

      优点:通用情况下查询性能最高。但对于一些特殊组织的数据,用图幅索引+本地缓存,速度是最快的。

      缺点:并发支持差,因此一般只用于独占的文件型数据源,而不常用于需要经常并发编辑的数据库型数据源;维护代价大,索引建立时间长。

      备注:对于静态数据,R树优势明显。

    • 四叉树索引

      优点:并发支持较好,建索引速度也较快。

      缺点:查询性能低于R树。

      建议使用动态索引替代四叉树。

    • 动态索引

      优点:并发支持好,建索引速度快,支持大数据量。可定制每一级格网的大小,不受数据集范围的限制。适合于数据库型数据源,在大数据量且只读情况下,性能比图幅索引稍低。

    • 图幅索引

      针对某些应用,图幅索引是最快的一种,最适合规则分幅的数据,如按标准图幅编号的1:25万或1:10万的国家基本比例尺地形图。对于普通数据,如果采用图幅索引,也会带来性能的提升。 图幅索引是针对数据库数据源的。根据范围或者某一字段对矢量数据集创建图幅索引。用表示对象所属区域的字段来创建图幅索引,或者按范围创建时,每一块里的记录数尽量平均,比如每块范围内有2000~20000个对象,范围不要太大或太小,这样的效果都很好。一般推荐范围:30×30即900个格子,这样的推荐值适合10万条记录的数据集。如果实际数据与此不同,则需要修改范围的长和宽。

    如下图所示,对路网数据建立空间索引前和空间索引后的地图查询效率是有差别的,建立空间索引前查询时间为 36 ms,建立R树索引后查询耗时为 2 ms,地图的浏览效率有明显提升。

  • 数据编码
  • 数据编码是一个压缩的概念,类似于 ZIP、RAR 等,数据集编码能减少数据量大小,数据量的减少可以大大提高磁盘读写和网络传输的效率,显著提高性能。数据集编码方式可以通过新建数据集、复制数据集、导入数据集和导出影像数据集等功能进行修改。矢量数据集有多种编码方式,如单字节、双字节、三字节、四字节。需注意的是点、属性表以及 CAD 数据集不可进行压缩编码。

  • 地图缓存

    在浏览器和服务器端(B/S)使用地图时,一般会使用地图缓存进行浏览,在发布服务时,建议发布缓存数据(将缓存sci保存为一个工作空间)而非原始工作空间,发布缓存会直接读取缓存图片,而发布工作空间需要读取图片的位置,二者在性能上有较大的差异。

内容提要

地图性能诊断

数据获取耗时优化

绘制耗时优化