对于 web 要素图层,要素缓存用于通过将要素存储在临时文件夹中来提高性能和常见任务。 缓存是自动管理的,并且随着要素的缓存,检索数据所需的查询数量减少,绘制时间得到改善。 这在处理大型或复杂数据集、在特定地图范围内或当众多用户使用相同服务时非常有用。 这还将减少服务请求的数量,从而减轻服务器的负荷。
默认情况下,要素缓存由应用程序自动填充;这是推荐设置。 每次地图绘制完成并满足以下五个条件时,都会填充缓存:
- 图层在内容窗格中可见。
- 图层基于可见比例范围显示。
- 所绘制要素总数小于服务图层上行计数阈值的 5 倍。
- 图层属性对话框上的缓存选项设置为会话结束时清除缓存。
- 当存在过滤器时,可见范围内的估计要素数小于行计数阈值的五倍。
要在自动缓存要素时防止长时间运行的查询过度所使用服务器资源,在填充每个图层的要素缓存时存在 15 秒的超时。 如果图层缓存填充花费的时间超过 15 秒,则该图层将标记为慢速,自动缓存不会尝试在当前或任何更小的比例下再次填充该缓存。 在大于慢速比例 1/4 的比例下,系统将尝试自动填充图层。
如果由于不满足上述五个条件或者出现 15 秒超时,而未填充要素缓存,则可以手动管理缓存,以利用缓存带来的性能优势。
警告:
如果打算在 ArcGIS Pro 中编辑随定义查询发布的图层,建议不要缓存这些图层。 这是因为基于服务的定义查询不可用于 ArcGIS Pro。 使用这些图层时,不满足定义查询的已编辑或已创建要素可能仍在 ArcGIS Pro 中显示,即使它们在其他应用程序中不可见。 这些要素可能在会话期间消失并且下次打开 ArcGIS Pro 时也将消失。
行计数阈值、预估行计数和子类型图层组的其他详细信息也将用于确定缓存是否会自动填充。
行计数阈值
行计数阈值用于确定要素缓存何时填充。 行计数阈值设置为 2000 或要素服务图层 maxRecordCount,以较低者为准。
预估的行计数
当支持预估的行计数并且图层具有过滤器时,ArcGIS Pro 将使用预估的行计数和上述五个条件来确定要素缓存是否将被填充。 如果图层没有过滤器,则不会使用预估的行计数,并且 ArcGIS Pro 将使用上述前四个条件来确定要素缓存是否将被填充。
如果整个要素服务图层的估计行数小于行数阈值的五倍,则将使用“快照”模式填充要素缓存。 将创建单一请求并使用服务中的所有要素填充要素缓存。 在“快照”模式下,空间和非空间查询将使用要素缓存。
对于不支持预估行计数的要素服务图层,如果图层上有过滤器,则不会填充要素缓存。
注:
要确定要素服务是否支持预估行计数,请转到图层的 JSON 资源并查找 infoInEstimates 参数。 如果在此数组中看到 count,ArcGIS Pro 将获得预估的行计数。 如果数组缺失或不含 count,则 ArcGIS Pro 不会获取估计的行计数。
有关此参数的详细信息,请参阅获取估计值。
子类型图层组
有时子类型图层组可能被视为过滤器,也可能不被视为过滤器。
当其中至少一个子图层可见时,子类型图层组被视为过滤器。 对于这种方案,如果支持,预估的行计数将用于填充要素缓存。
当所有子类型图层组都可见时,子类型图层组不被视为过滤器。 对于这种方案,所有可见子类型图层组的绘制计数总和将用于确定要素缓存是否已填充。
当子类型图层组不可见时,子类型图层组不被视为过滤器。 对于这种方案,子类型图层组将被视为不可见,并且不会为这些图层填充要素缓存。