Web フィーチャ レイヤーでは、フィーチャ キャッシュを使用して、フィーチャを一時フォルダーに保存することで、パフォーマンスと一般的なタスクを改善します。 キャッシュは自動的に管理され、フィーチャがキャッシュされると、データを取得するのに必要なクエリの数が減り、描画時間が改善されます。 これは、大規模または複雑なデータセットを扱う場合、特定のマップ範囲で作業する場合、多数のユーザーが同じサービスを使用する場合などに有効です。 また、サービス リクエスト数が減るため、サーバーへの負担も軽減されます。
デフォルトでは、フィーチャ キャッシュはアプリケーションによって自動的に作成され、これが推奨設定です。 キャッシュは、マップの描画が終了し、次の 5 つの条件が満たされるたびに作成されます。
- レイヤーが [コンテンツ] ウィンドウに表示されている
- レイヤーが表示縮尺範囲に基づいて表示されている
- 描画されたフィーチャの総数がサービス レイヤーの行数の閾値の 5 倍よりも少ない
- レイヤー プロパティ ダイアログ ボックスのキャッシュ オプションが [セッション終了時にキャッシュを削除] に設定されている
- フィルターが存在する場合に、表示範囲内のフィーチャの推定数が、行数の閾値の 5 倍未満である
フィーチャを自動キャッシュする際に、長時間実行されるクエリがサーバー リソースを過度に使用することを避けるため、レイヤーごとにフィーチャ キャッシュの作成は 15 秒でタイムアウトします。 レイヤーのキャッシュの作成に 15 秒を超える時間がかかる場合、リクエストはキャンセルされ、レイヤーには低速というマークが付けられます。また、自動キャッシュは現在の縮尺またはより小さい縮尺ではキャッシュの再作成を試行しません。 低速の縮尺の 1/4 よりも大きい縮尺では、レイヤーの自動作成が試行されます。
上記の 5 つの条件が満たされないか、15 秒のタイムアウトが発生したためにフィーチャ キャッシュが作成されない場合、キャッシュを手動で管理することで、キャッシュを活用した優れたパフォーマンスを実現できます。
注意:
フィルターには、表示フィルター、定義クエリ、サブタイプ グループ レイヤー、シンボル クラスなどがあります。
注意:
ArcGIS Pro 内でレイヤーを編集する予定の場合、定義クエリを含めて公開されているレイヤーをキャッシュすることはお勧めできません。 これは、サービスベースの定義クエリは ArcGIS Pro で使用できないためです。 これらのレイヤーを使用すると、定義クエリを満たしていない編集または作成されたフィーチャが、他のアプリケーションでは表示されなくても、ArcGIS Pro で表示される可能性があります。 これらのフィーチャは、セッション中に表示されなくなる場合があり、ArcGIS Pro を次に開いたときには表示されなくなります。
行数の閾値、推定行数、サブタイプ グループ レイヤーの追加詳細もキャッシュを自動的に作成するかどうかの決定に使用されます。
行数の閾値
行数の閾値は、フィーチャ キャッシュをいつ作成するかを決定するために使用されます。 行数の閾値は、2000 またはフィーチャ サービス レイヤーmaxRecordCountのいずれか低い方に設定されます。
推定行数
推定行数がサポートされ、レイヤーにフィルターがある場合、ArcGIS Pro は、推定行数と前述の 5 つの条件を使用して、フィーチャ キャッシュを作成するかどうかを決定します。 レイヤーにフィルターがない場合、推定行数は使用されず、ArcGIS Pro は前述の最初の 4 つの条件を使用して、フィーチャ キャッシュを作成するかどうかを決定します。
フィーチャ サービス レイヤー全体の推定行数が行数の閾値の 5 倍を下回る場合は、フィーチャ キャッシュはスナップショット モードを使用して作成されます。 1 度のリクエストが行われ、フィーチャ キャッシュがサービスからのすべてのフィーチャを使用して作成されます。 スナップショット モードでは、空間クエリと非空間クエリはフィーチャ キャッシュを使用します。
推定行数をサポートしないフィーチャ サービス レイヤーでは、レイヤーにフィルターがあるとフィーチャ キャッシュは作成されません。
注意:
フィーチャ サービスが推定行数をサポートしているかどうかを判断するには、レイヤーの JSON リソースで infoInEstimates パラメーターを調べます。 この配列内に「count」が表示される場合、ArcGIS Pro は、推定行数を取得します。 配列が存在しないか、count が含まれない場合、ArcGIS Pro は推定行数を取得しません。
このパラメーターに関する詳細については、「推定を取得」をご参照ください。
サブタイプ グループ レイヤー
サブタイプ グループ レイヤーは、フィルターと見なされる場合と見なされない場合があります。
サブタイプ グループ レイヤーは、その内の少なくとも 1 つのサブレイヤーが表示可能な場合にフィルターと見なされます。 この場合では、推定行数がサポートされている場合、推定行数を使用してフィーチャ キャッシュが作成されます。
すべてのサブタイプ グループ レイヤーが表示可能な場合、サブタイプ グループ レイヤーはフィルターとは見なされません。 この場合では、表示されるすべてのサブタイプ グループ レイヤーの描画件数の合計を使用して、フィーチャ キャッシュを作成するかどうかを決定します。
表示可能なサブタイプ グループ レイヤーがない場合、サブタイプ グループ レイヤーはフィルターとは見なされません。 この場合では、サブタイプ グループ レイヤーは表示不可と見なされ、それらのレイヤーのフィーチャ キャッシュは作成されません。