web 工具性能提示

用户希望工具尽可能快速运行,因此 Web 工具必须高效。 由于 ArcGIS Server 可以同时容纳多个客户端,因此低效的服务会导致服务器超载。 服务效率越高,可使用相同计算资源提供服务的客户端就越多。

以下是一些可用来提高服务性能的提示和技术。 通常,技术是按顺序显示的 - 能够较大幅度地提高性能的技术显示在前面。 最后几个提示可以将运行时间缩短零点几秒,在某些情况下这可能很重要。

使用投影数据的图层

如果在将工具共享为 web 工具之前运行该工具,将使用图层作为输入而非磁盘上数据集的路径来运行该工具。 一个图层会引用磁盘上的数据集,而多个图层则会缓存数据集属性。 对网络数据集图层和栅格图层尤其如此。 使用图层而不是数据集的路径会有性能上的优势,原因在于服务开始时会从数据集创建图层、缓存数据集的基本属性并保持数据集开启。 当服务运行时,数据集属性立即可用,数据集将打开并可对其执行操作。

例如,Esri SampleServer 上的视域服务和 ArcGIS Network Analyst extension 可创建使用图层的行驶时间面。 根据数据集的不同大小,每次运行服务时可以节省 1 到 2 秒以上的时间。

使用 ArcGIS Server 本地数据

Web 工具需要的工程数据必须为 ArcGIS Server 本地数据。 与位于同一台计算机上的数据相比,通过网络共享 (UNC) 共享和访问的数据速度会慢些。 性能在数字上有很大差别,但并不鲜见的是,通过 LAN 读写数据所耗费的时间是本地磁盘的两倍。

将中间数据写入内存

将中间(临时)数据写入 memory 工作空间。 与将数据写入磁盘相比,将数据写入内存速度更快。

注:

如果未设置选项以地图图像图层方式查看输出数据,还可以将输出数据写入内存。

了解有关将数据写入内存的详细信息

对任务使用的数据进行预处理

大多数 web 工具旨在成为专用工作流,以便为 Web 客户端提出的特定空间查询提供答案。 因为这些工作流往往针对已知数据进行特定操作,所以几乎总可以对数据进行预处理,从而使操作过程得到优化。 例如,增加属性或空间索引就是一个优化空间或属性选择操作的预处理过程。

  • 可以使用邻近值生成近邻表工具预先计算距离已知位置的距离。 例如,假设您的服务允许客户端选择闲置宗地,此宗地到南加利福尼亚州洛杉矶河的距离是用户指定的。 您可以使用按位置选择图层工具来执行这一选择,但更快的是预先计算与来自南加利福尼亚州洛杉矶河的每块宗地的距离(使用近邻值工具),再将计算得到的距离存储为宗地属性。 您将使用添加属性索引工具为此属性建立索引。 现在,当客户端发起查询时,任务可以对距离属性执行属性选择,而非执行更低效的空间查询。

添加属性索引

如果您的工具正在使用属性查询来选择数据,使用添加属性索引工具为查询中使用的每个属性创建属性索引。 您只需要在模型或脚本的外面创建一次索引。

添加空间索引

如果模型或脚本针对 shapefile 执行空间查询,请使用添加空间索引工具为 shapefile 创建空间索引。 如果使用的是地理数据库要素类,则会自动创建和维护空间索引。 在某些情况下,重新计算空间索引可以提高性能,如地理数据库中的空间索引所述。

使用同步而非异步

可以将 web 工具设置为同步或异步运行。 当工具异步运行时,服务器会产生一部分的开销,这意味着异步工具的运行时间很少会低于 1 秒。 同步运行相同任务比异步运行相同任务要快大约 0.1 秒。

避免不必要的坐标变换

如果 web 工具使用的数据集来自不同的坐标系,则工具在运行时可能需要将坐标转换成单一的通用坐标系。 根据数据集的不同大小,从一个坐标系转换坐标至另外一个坐标系会增加不必要的开销。 您需要了解数据集的坐标系以及工具是否必须执行坐标转换。 您可能想要将您工具使用的所有数据集转换至单个坐标系中。

减小数据大小

如果数据集较小,则用于处理数据的任何软件的工作效率都会更高。 可通过以下方式减小地理数据的大小:

  • 使用删除字段工具移除工程数据中的不必要属性。
  • 线要素和面要素具有用于定义各自形状的折点。 每个折点都采用 x,y 坐标。 要素包含的折点数可能会多于所需数量,从而不必要地增加了数据集的大小。
    • 如果数据来自外部源,则该数据可能包含重复折点,这些折点距离很近,对要素的定义不会起到任何作用。
    • 折点数不适合分析比例。 例如,要素包含适用于大比例分析的详细信息,而您进行的是小比例的分析或演示。
    可以使用简化线简化面概化工具从数据中移除额外的折点以达到所需的细节层次。