地理处理服务性能方面的提示

地理处理服务需要快速而高效地执行。客户端需要并期待快速服务。由于 ArcGIS Server 可以同时容纳多个客户端,因此低效的服务会导致服务器超载。服务效率越高,可使用相同计算资源提供服务的客户端就越多。

以下是一些可用来提高服务性能的提示和技术。通常,技术是按顺序显示的 - 能够较大幅度地提高性能的技术显示在前面。后几个提示可以将执行时间节省零点几秒,对于一些任务而言,这可能是必要的。

使用本地作业目录

如果 ArcGIS Server 配置拥有多台计算机,请为每台计算机建立本地作业目录。这样会显著减少执行时间。建立本地作业目录是系统管理员的任务。

了解有关本地作业目录的详细信息

使用数据和资源的本地路径

如果可能,应将服务所使用的数据存储在执行该服务的计算机上,且不应将其在局域网 (LAN) 中进行分发。与从本地磁盘读取数据相比,通过 LAN 读取的速度更慢。性能数会有所不同,但根据经验,通过 LAN 传输数据的时间是通过本地磁盘进行传输的二倍。

将数据写入内存

您可以将中间数据写入内存。与将数据写入磁盘相比,将数据写入内存速度更快。只要您未在使用结果地图服务,就还可以将输出数据写入内存。但不能将栅格数据写入内存。

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

使用 ESRI 格网栅格格式

ArcGIS 支持多种不同类型的栅格数据格式。如果任务使用的是栅格数据,则通常应将栅格数据以 GRID 格式进行存储,以便所有模型进程都可以对 GRID 进行操作。(您可以使用栅格转其他格式工具或复制栅格工具将任何栅格预处理为 GRID 格式。)在处理速度方面,GRID 格式通常比其他栅格类型更为快速;但是,您仍可以在模型和脚本中使用任何受支持的栅格类型。

如果无法以 GRID 格式存储栅格数据,则可能需要尝试在模型或脚本中使用复制栅格工具来复制部分栅格,然后仅针对关注的区域进行处理。要复制部分栅格,请使用复制栅格工具,然后设置地理处理输出范围环境。这样就会仅复制位于此范围内的像元。

使用源地图文档中的图层

如果服务使用的是源地图文档,则模型和脚本可以使用源地图文档中的图层。一个图层会引用磁盘上的数据集,而一些图层则会对数据集的相关属性进行缓存。对于网络数据集图层更是如此,如 GP 服务示例:行驶时间面中所示。如果使用网络数据集图层来代替数据集,则会带来性能优势;因为 ArcMap 打开数据集一次之后,就会缓存数据集的基本属性并一直使数据集处于打开状态。当模型执行时,您不必重新打开数据集,因为源地图文档已经将其打开,这样会提高性能。

避免不需要的坐标变换

有关详细信息,请参阅地理处理服务的空间参考注意事项

添加属性索引

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

添加空间索引

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

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

地理处理服务旨在成为专用应用程序,以便为 Web 客户端提出的特定空间查询提供答案。因为任务往往针对已知数据进行特定查询,所以通常可以对数据进行预处理,从而使查询过程得到优化。例如,添加属性或空间索引是一个简单的预处理过程,并且只需要在任务外面执行一次。

以下是随教程数据一同提供的地理处理服务示例中的一些预处理示例:

将数据写入 shapefile

与将数据写入许多其他格式相比,将数据写入 shapefile 速度更快(仅比将数据写入内存的速度慢一些)。不过,使用 shapefile 时存在一些重要的限制,例如字段名称为 10 个字符、不支持空值以及对日期/时间的支持受限。这些限制可能会破坏模型或脚本。有关 shapefile 输出的详细信息,请参阅 shapefile 输出的地理处理注意事项

减小数据大小

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

使用同步而非异步

同步表示在服务器的任务执行完成之前,客户端需要一直等待。异步表示服务器执行任务期间,客户端可以自由执行其他工作。在同步模式下执行任务比在异步模式下执行相同的任务要快大约 0.1 秒。

相关主题


7/10/2012