ArcGIS Desktop

  • ArcGIS Pro
  • ArcMap

  • My Profile
  • ヘルプ
  • Sign Out
ArcGIS Desktop

ArcGIS Online

組織のマッピング プラットフォーム

ArcGIS Desktop

完全なプロ仕様の GIS

ArcGIS Enterprise

エンタープライズ GIS

ArcGIS Developers

位置情報利用アプリの開発ツール

ArcGIS Solutions

各種業界向けの無料のテンプレート マップおよびテンプレート アプリケーション

ArcGIS Marketplace

組織で使えるアプリとデータを取得

  • ドキュメント
  • サポート
Esri
  • サイン イン
user
  • マイ プロフィール
  • サイン アウト

ArcMap

  • ホーム
  • はじめに
  • マップ
  • 解析
  • データ管理
  • ツール
  • エクステンション

データベース統計情報の更新

Standard または Advancedのライセンスで利用可能。

  • 統計情報の更新コマンドの使用
  • データセットの分析 (Analyze Datasets) ツールの使用
  • Python スクリプトの実行

データベース管理システム オプティマイザーは、クエリに最適な実行計画を選択するために、データベース統計情報を使用します。クエリのパフォーマンスを維持するために、テーブルのコンテンツが大幅に変更された場合に、統計情報を更新する必要があります。たとえば、大量のレコードをテーブルに読み込んだ場合や、テーブルに対して多くの編集を行った場合などです。

以下のタイプのテーブルとインデックスに対して、統計情報を更新できます。

  • 分析するために選択したテーブル、およびそれに関連するインデックス
  • バージョン対応登録されたテーブルとフィーチャクラスの差分テーブル、および差分テーブルのインデックス
  • 履歴管理が有効化されたデータセットの履歴アーカイブ テーブル、およびアーカイブ テーブルのインデックス
  • ジオデータベース システム テーブル
  • sdebinary ジオメトリ格納を使用するフィーチャクラスを分析する場合、フィーチャ テーブル、空間インデックス テーブル、およびこれらのテーブルのインデックスに関する統計情報も更新されます
メモ:

データベースの統計情報の更新は、入出力 (I/O) の負荷が高い処理です。データベースの負荷が低い時間帯に統計情報を更新してください。

ArcGIS では、統計情報の更新方法が複数用意されています。以下は、それらの説明です。

統計情報の更新コマンドの使用

ArcMap の [統計情報の更新] コマンドを使用して、[カタログ] ツリーで直接選択した特定のデータセットの統計情報を更新できます。統計情報を更新するには、データセットの所有者である必要があります。

  1. ArcMap または ArcCatalog を起動します。
  2. カタログ ツリーの [Database Connections] の下で、統計情報を更新するデータセットが含まれているデータベースまたはエンタープライズ ジオデータベースに接続します。

    必ずデータセットの所有者として接続してください。

  3. カタログ ツリーで、データセットを右クリックします。

    右クリックの対象は、フィーチャ データセット、フィーチャクラス、テーブル、ラスター カタログ、ラスター データセット、またはモザイク データセットです。

  4. [管理] をポイントし、[分析] をクリックします。

このトピックのはじめに説明したように、このデータセットのテーブルおよびインデックスの統計情報が更新されます。

データセットの分析 (Analyze Datasets) ツールの使用

[データセットの分析 (Analyze Datasets)] ジオプロセシング ツール ([データ管理] ツールボックスの [ジオデータベース管理] ツールセットにあります) を使用して、統計情報を更新できます。複数のデータセットに関する統計情報を一度に更新する場合、分析対象の特定のテーブルを選択する場合 (たとえば、差分テーブルに関する統計情報のみを更新する場合)、またはジオデータベース システム テーブルに関する統計情報を更新する場合、ArcMap の [統計情報の更新] コマンドの代わりに、このツールを使用します。

分析対象のテーブルの所有者としてツールを実行する必要があります。ジオデータベース システム テーブルの場合は、ジオデータベース管理者としてツールを実行する必要があります。多くの新しいテーブルまたはフィーチャクラスがジオデータベースに追加された場合、大量のバージョン対応の編集が行われた場合、またはジオデータベースが圧縮された場合は、ジオデータベース システム テーブルに関する統計情報を更新する必要があります。

  1. ArcGIS Desktop クライアントを起動し、統計情報を更新するテーブルを含むジオデータベースに接続します。

    分析対象のテーブルの所有者として接続します。

  2. [データセットの分析 (Analyze Datasets)] ジオプロセシング ツールを開きます。

    [検索] フィールドにツール名を入力してツールを検索して開くか、[データ管理] ツールボックスの [ジオデータベース管理] ツールセット内のツールを参照します。

  3. 手順 1 で作成したデータベース接続ファイルを、入力ワークスペースとして使用します。
  4. 分析対象のテーブルの以下のチェックボックスをオンにします。
    • 選択したベース テーブルの統計情報を更新する場合は、[選択したデータセットのベース テーブルの分析] をオンのままにします。
    • バージョン対応登録されたデータセットのテーブルの追加および削除に関する統計情報を更新する場合は、[選択したデータセットの差分テーブルの分析] をオンにします。
    • 履歴管理が有効化されたデータセットの履歴アーカイブ テーブルに関する統計情報を更新する場合は、[選択したデータセットのアーカイブ テーブルの分析] をオンにします。
    • ジオデータベース システム テーブルに関する統計情報を更新する場合は、[システム テーブルを含める] をオンにします。この操作は、ジオデータベースにジオデータベース管理者として接続した場合にのみ実行できます。
  5. [OK] をクリックします。

選択したテーブルとそれらのインデックスの統計情報が更新されます。

Python スクリプトの実行

Python スクリプトで AnalyzeDatasets_management 関数を呼び出して、ベース テーブル、差分テーブル、アーカイブ テーブル、またはジオデータベース システム テーブルに関する統計情報を更新できます。[データセットの分析 (Analyze Datasets)] ツールと同様に、分析対象のテーブルの所有者として AnalyzeDatasets_management を実行する必要があります。

以下の Python スクリプトを実行するときに、データベース接続ファイル (*.sde ファイル) を指定します。このスクリプトは、接続で指定されたユーザーが所有するすべてのテーブルの統計情報を更新します。

たとえば、データベース接続ファイル entgdb.sde (/usr/connections にあります) を使用して Linux 上でこのスクリプトを実行するには、以下を入力します。

./ AnalyzeDatasets.py /usr/connections/entgdb.sde

このスクリプトを実行してシステム テーブルに対して統計情報を更新するには、ジオデータベース管理者として接続する接続ファイルを指定します。

# Name: AnalyzeDatasets.py
# Description: analyzes all datasets in an enterprise geodatabase
#              for a given user.

# Import system modules
import arcpy
import os

# set workspace
# the user in this workspace must be the owner of the data to analyze.
workspace = arcpy.GetParameterAsText(0)

# set the workspace environment
arcpy.env.workspace = workspace

# NOTE: Analyze Datasets can accept a Python list of datasets.

# Get a list of all the datasets the user has access to.
# First, get all the stand alone tables, feature classes and rasters.
dataList = arcpy.ListTables() + arcpy.ListFeatureClasses() + arcpy.ListRasters()

# Next, for feature datasets get all of the datasets and featureclasses
# from the list and add them to the master list.
for dataset in arcpy.ListDatasets("", "Feature"):
    arcpy.env.workspace = os.path.join(workspace,dataset)
    dataList += arcpy.ListFeatureClasses() + arcpy.ListDatasets()

# reset the workspace
arcpy.env.workspace = workspace

# Get the user name for the workspace
userName = arcpy.Describe(workspace).connectionProperties.user.lower()

# remove any datasets that are not owned by the connected user.
userDataList = [ds for ds in dataList if ds.lower().find(".%s." % userName) > -1]

# Execute analyze datasets
# Note: to use the "SYSTEM" option the workspace user must be an administrator.
arcpy.AnalyzeDatasets_management(workspace, "NO_SYSTEM", dataList, "ANALYZE_BASE","ANALYZE_DELTA","ANALYZE_ARCHIVE")
print("Analyze Complete")

ArcGIS Desktop

  • ホーム
  • ドキュメント
  • サポート

ArcGIS

  • ArcGIS Online
  • ArcGIS Desktop
  • ArcGIS Enterprise
  • ArcGIS
  • ArcGIS Developer
  • ArcGIS Solutions
  • ArcGIS Marketplace

Esri について

  • 会社概要
  • 採用情報
  • Esri ブログ
  • ユーザ カンファレンス
  • デベロッパ サミット
Esri
ご意見・ご感想をお寄せください。
Copyright © 2021 Esri. | プライバシー | リーガル