ユーザーはツールができるだけ高速に実行されることを期待しているので、Web ツールとジオプロセシング サービスを効率的にする必要があります。 ArcGIS Server は一度に複数のクライアントに対処できるため、効率の悪いサービスによってサーバー リソースが過負荷状態になる可能性があります。 サービスの効率がよいほど、同じコンピューター リソースを使って対処できるクライアントの数が増えます。
プロジェクト データでのレイヤーの使用
Web ツールとして共有する前にツールを実行する場合は、ディスク上のデータセットへのパスではなく、レイヤーを入力として使用してツールを実行します。 レイヤーはディスク上のデータセットを参照し、データセット プロパティをキャッシュします。 これは特に、ネットワーク データセット レイヤーおよびラスター レイヤーの場合に当てはまります。 データセットへのパスの代わりにレイヤーを使用すると、パフォーマンス上の利点がもたらされます。これは、サービスを開始すると、データセットからレイヤーが作成され、基本データセット プロパティがキャッシュされ、データセットが開いたままになるためです。 サービスを実行すると、データセット プロパティをすぐに使用できるようになり、データセットが開いて動作可能になります。
たとえば、ArcGIS Network Analyst extension では、レイヤーを使用した走行時間ポリゴンが作成されます。 データセットのサイズに応じて、サービス実行時間を 1 回あたり 1 〜 2 秒以上短縮できます。
ヒント:
Python スクリプト ツールでレイヤーを使用する方法の例をご参照ください。
ArcGIS Server のローカル データの使用
Web ツールで必要なプロジェクト データは、ArcGIS Server のローカル データでなければなりません。 ネットワーク共有 (UNC) を介して共有され、アクセスされるデータは、同じコンピューター上で使用可能な場合に比べて低速です。 パフォーマンスを示す数字はさまざまですが、LAN 経由でデータを読み書きすると、ローカル ディスクの場合に比べて 2 倍の時間がかかることがよくあります。
中間データのメモリへの書き込み
中間データを memory ワークスペースに書き込みます。 データをメモリに書き込むほうが、ディスクに書き込むよりも高速です。
注意:
出力をマップ イメージ レイヤーとして表示するオプションを設定していない場合は、出力データをメモリに書き込むことができます。
タスクで使用されるデータの事前処理
ほとんどの Web ツールは、Web クライアントによって送信された特定の空間検索に対する答えを提供するためのワークフローとして設計されています。 これらのワークフローは既知のデータに対する特定の操作であることが多いため、通常は、データを前処理することで、操作を最適化できます。 たとえば、属性インデックスまたは空間インデックスの追加は、属性選択操作または空間選択操作を最適化するための事前処理です。
[最近接 (Near)] ツールまたは [近接情報テーブルの生成 (Generate Near Table)] ツールを使用して、既知の場所からの距離を計算できます。 たとえば、サービスを使用すると、クライアントがロサンゼルス川からユーザー指定の距離にある空き地を選択できるとします。 [空間検索 (Select Layer By Location)] ツールを使用してこの選択を実行することもできますが、それよりも、ロサンゼルス リバーからのすべての土地区画の距離を ([最近接 (Near)] ツールを使用して) 事前に計算し、その計算済みの距離を土地区画の属性として保存した方が、非常に高速です。 [属性インデックスの追加 (Add Attribute Index)] ツールを使用して、この属性にインデックスを追加できます。 これにより、クライアントが検索する際に、効率の低い空間検索ではなく、距離属性に対する属性選択をタスクで実行できます。
属性インデックスの追加
ツールが属性検索でデータを選択する場合は、[属性インデックスの追加 (Add Attribute Index)] ツールを使用して、検索で使用される属性ごとに属性インデックスを作成します。 インデックスは 1 回作成するだけでよく、モデルまたはスクリプトの外で作成できます。
空間インデックスの追加
モデルまたはスクリプトでシェープファイルに対する空間検索を実行する場合は、[空間インデックスの追加 (Add Spatial Index)] ツールを使用してシェープファイルの空間インデックスを作成します。 ジオデータベース フィーチャクラスの場合は、空間インデックスが自動的に作成されて管理されます。 ジオデータベースの空間インデックスで説明するように、空間インデックスを再計算すると、パフォーマンスが向上することがあります。
実行時間の短いタスクの場合に非同期ではなく同期を使用
Web ツールを同期的または非同期に実行するように設定できます。 ツールを非同期に実行すると、サーバーによるオーバーヘッドが発生します。 同じタスクを同期的に実行すると、非同期に実行した場合よりも常に実行時間が短縮されます。 ただし、実行時間の長いタスクの場合、これはわずかな差になり、ツールの実行中に同期しているサービスが統計情報とメッセージを提供できないため、エクスペリエンスが低下することがあります。
不要な座標変換の回避
Web ツールで座標系が異なるデータセットを使用している場合は、実行時に複数のデータセットを 1 つの共通座標系に変換しなければならない場合があります。 データセットのサイズによっては、1 つの座標系から別の座標系に変換すると、不要なオーバーヘッドが発生する場合があります。 データセットの座標系を確認し、ツールで座標変換を実行する必要があるかどうかを把握しておきます。
データ サイズの削減
データを処理するソフトウェアは、データセットが小さい場合に高速に動作します。 地理データのサイズを縮小する方法を次に示します。
- [フィールドの削除 (Delete Field)] ツールを使用して、プロジェクト データの不要な属性を削除します。
- ライン フィーチャとポリゴン フィーチャには、それらの形状を定義する頂点があります。 フィーチャに必要以上の頂点が含まれていると、データセットのサイズが無駄に拡大することがあります。
- 重複した頂点や、非常に近接しているためにフィーチャの定義に寄与しない頂点がデータに含まれている可能性があります。
- 頂点の数は解析の縮尺と一致しません。 たとえば、大きい縮尺に適した詳細がフィーチャに含まれていても、解析や表示が小さい縮尺で行われることがあります。