データセットの分析(Analyze Datasets) (データの管理)
サマリ
ベース テーブル、差分テーブル、およびアーカイブ テーブルの統計情報と、これらのテーブルのインデックスに関する統計情報を更新します。このツールは、RDBMS のクエリ オプティマイザから最適なパフォーマンスを得るために、エンタープライズ ジオデータベースで使用されます。古い統計情報では、ジオデータベースのパフォーマンスが低下する可能性があります。
使用法
- 入力ワークスペースは、エンタープライズ データベースである必要があります。[データセットの分析(Analyze Datasets)] ツールは、ファイル ジオデータベースまたはパーソナル ジオデータベースでは動作しません。
- データの読み込み、削除、更新、圧縮の操作を行った後は、Oracle、SQL Server、DB2、PostgreSQL、Informix データベースで RDBMS 統計情報を更新することが重要です。
- ステートおよびステート系統テーブルを分析するかどうかは、[システム テーブルを含める] オプションで決定します。このオプションがオフの場合、これらのテーブルは分析されません。オプションがオンの場合は、これらのテーブルが分析されます。
- テーブルまたはデータセットを操作するときに、このツールはベース テーブル、差分テーブル、およびアーカイブ テーブルの統計情報と、これらのテーブルのインデックスに関する統計情報を更新します。
- [分析するデータセット] パラメータの [値の追加] ボタンは、ModelBuilder でのみ使用されます。ModelBuilder では、先のツールが実行されていないか、出力データが存在しないために、[分析するデータセット] パラメータに値が表示されない場合があります。[値の追加] ボタンを使用すると、モデルの作成を続行できるように、必要な値を追加することができます。
構文
パラメータ | 説明 | データ タイプ |
input_database |
分析するデータを含むエンタープライズ ジオデータベース。 | Workspace |
include_system | ステートおよびステート系統テーブルで統計情報を収集するかどうかを指定します。 注意: このオプションを有効にするには、ジオデータベース管理者である必要があります。 このオプションの適用対象となるのは、ジオデータベースだけです。入力ワークスペースがデータベースの場合、このオプションは無視されます。
| Boolean |
in_datasets [in_datasets,...] (オプション) | 分析するデータセットの名前。個々のデータセット、またはデータセットの Python リストを指定できます。データセット名には、入力ワークスペースからの相対パスを使用します。絶対パスは入力として使用できません。 接続ユーザが指定するデータセットのデータ所有者である必要があります。 | String |
analyze_base (オプション) | 選択したデータセットのベース テーブルを分析するかどうかを指定します。 このオプションの適用対象となるのは、ジオデータベースだけです。入力ワークスペースがデータベースの場合、このオプションは無視されます。
| Boolean |
analyze_delta (オプション) | 選択したデータセットの差分テーブルを分析するかどうかを指定します。 このオプションの適用対象となるのは、ジオデータベースだけです。入力ワークスペースがデータベースの場合、このオプションは無視されます。
| Boolean |
analyze_archive (オプション) | 選択したデータセットのアーカイブ テーブルを分析するかどうかを指定します。 このオプションの適用対象となるのは、ジオデータベースだけです。入力ワークスペースがデータベースの場合、このオプションは無視されます。
| Boolean |
コードのサンプル
次の 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(データセットの分析)ツールを使用して、指定したユーザ接続のすべてのデータセットを分析する方法を示しています。
# Name: AnalyzeDatasets.py
# Description: analyzes all datasets in an enterprise geodatabase
# for a given user.
# Import system modules
import arcpy, 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"