データセットの分析 (Analyze Datasets) (データ管理)

概要

ベース テーブル、差分テーブル、およびアーカイブ テーブルの統計情報と、これらのテーブルのインデックスに関する統計情報を更新します。このツールは、RDBMS のクエリ オプティマイザーから最適なパフォーマンスを得るために、エンタープライズ ジオデータベースで使用されます。古い統計情報では、ジオデータベースのパフォーマンスが低下する可能性があります。

使用法

  • 入力ワークスペースは、エンタープライズ データベースである必要があります。[データセットの分析 (Analyze Datasets)] ツールは、ファイル ジオデータベースまたはパーソナル ジオデータベースでは動作しません。

  • データの読み込み、削除、更新、圧縮の操作を行った後は、Oracle、SQL Server、DB2、PostgreSQL データベースで RDBMS 統計情報を更新することが重要です。

  • ステートおよびステート系統テーブルを分析するかどうかは、[システム テーブルを含める] オプションで決定します。このオプションがオフの場合、これらのテーブルは分析されません。オプションがオンの場合は、これらのテーブルが分析されます。

  • テーブルまたはデータセットを操作するときに、このツールはベース テーブル、差分テーブル、およびアーカイブ テーブルの統計情報と、これらのテーブルのインデックスに関する統計情報を更新します。

  • [分析するデータセット] パラメーターの [値の追加] ボタンは、ModelBuilder でのみ使用されます。ModelBuilder では、先のツールが実行されていないか、出力データが存在しないために、[分析するデータセット] パラメーターに値が表示されない場合があります。[値の追加] ボタンを使用すると、モデルの作成を続行できるように、必要な値を追加することができます。

構文

arcpy.management.AnalyzeDatasets(input_database, include_system, {in_datasets}, {analyze_base}, {analyze_delta}, {analyze_archive})
パラメーター説明データ タイプ
input_database

分析するデータを含むエンタープライズ ジオデータベース。

Workspace
include_system

ステートおよびステート系統テーブルで統計情報を収集するかどうかを指定します。

メモ:

このオプションを有効にするには、ジオデータベース管理者である必要があります。

このオプションの適用対象となるのは、ジオデータベースだけです。入力ワークスペースがデータベースの場合、このオプションは無視されます。

  • NO_SYSTEMステートおよびステート系統テーブルで統計情報を収集しません。これがデフォルトです。
  • SYSTEMステートおよびステート系統テーブルで統計情報を収集します。
Boolean
in_datasets
[in_datasets,...]
(オプション)

分析するデータセットの名前。個々のデータセット、またはデータセットの Python リストを指定できます。データセット名には、入力ワークスペースからの相対パスを使用します。絶対パスは入力として使用できません。

接続ユーザーが指定するデータセットのデータ所有者である必要があります。

String
analyze_base
(オプション)

選択したデータセットのベース テーブルを分析するかどうかを指定します。

このオプションの適用対象となるのは、ジオデータベースだけです。入力ワークスペースがデータベースの場合、このオプションは無視されます。

  • ANALYZE_BASE 選択したデータセットのベース テーブルで統計情報を収集します。これがデフォルトです。
  • NO_ANALYZE_BASE 選択したデータセットのベース テーブルで統計情報を収集しません。
Boolean
analyze_delta
(オプション)

選択したデータセットの差分テーブルを分析するかどうかを指定します。

このオプションの適用対象となるのは、ジオデータベースだけです。入力ワークスペースがデータベースの場合、このオプションは無視されます。

  • ANALYZE_DELTA 選択したデータセットの差分テーブルで統計情報を収集します。これがデフォルトです。
  • NO_ANALYZE_DELTA 選択したデータセットの差分テーブルで統計情報を収集しません。
Boolean
analyze_archive
(オプション)

選択したデータセットのアーカイブ テーブルを分析するかどうかを指定します。

このオプションの適用対象となるのは、ジオデータベースだけです。入力ワークスペースがデータベースの場合、このオプションは無視されます。

  • ANALYZE_ARCHIVE 選択したデータセットのアーカイブ テーブルで統計情報を収集します。これがデフォルトです。
  • NO_ANALYZE_ARCHIVE 選択したデータセットのアーカイブ テーブルで統計情報を収集しません。
Boolean

派生した出力

名前説明データ タイプ
out_workspace

更新されたワークスペース。

ワークスペース

コードのサンプル

AnalyzeDatasets (データセットの分析) の例 1 (Python ウィンドウ)

次の Python ウィンドウ スクリプトは、イミディエイト モードで AnalyzeDatasets ツールを使用する方法を示しています。

# Import system modules
import arcpy

arcpy.AnalyzeDatasets_management("c:/Connections/tenone@sde.sde",
                                 "SYSTEM",
                                 "gdb.city;gdb.state;map.lines",
                                 "ANALYZE_BASE",
                                 "ANALYZE_DELTA",
                                 "ANALYZE_ARCHIVE")
AnalyzeDatasets (データセットの分析) の例 2 (スタンドアロン スクリプト)

次のスタンドアロン スクリプトは、AnalyzeDatasets ツールを使用して、指定したユーザー接続のすべてのデータセットを分析する方法を示しています。

# 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")

ライセンス情報

  • Basic: いいえ
  • Standard: はい
  • Advanced: はい

関連トピック