インデックスの再構築 (Rebuild Indexes) (データ管理)

サマリー

エンタープライズ ジオデータベースで既存の属性インデックスまたは空間インデックスを再構築します。また、states および state_lineage ジオデータベース システム テーブル、および従来のバージョンに登録されたデータセットの差分テーブルのインデックスも再構築できます。 インデックスが最新でない場合は、クエリのパフォーマンスが低下する可能性があります。

使用法

  • データは、データベースまたはエンタープライズ ジオデータベースに存在する必要があります。このツールは、ファイル ジオデータベースまたはジオデータベースでは動作しません。
  • データの読み込み、削除、更新、および圧縮操作を行った後は、インデックスを再構築することが重要です。
  • このツールは、バージョン対応および履歴管理が有効なジオデータベースのベース テーブル、差分テーブル、およびアーカイブ テーブルの属性インデックスと空間インデックスを再構築します。
  • [システム テーブルを含む] パラメーターは、指定したジオデータベースのステート テーブルとステート系統テーブルのインデックスを再構築するかどうかを決定します。オプションがオフの場合、これらのテーブルのインデックスは再構築されません。[システム テーブルを含む] パラメーターがオフの場合、ツールを実行するには、[インデックスを再構築するデータセット] で少なくとも 1 つのデータセットを選択する必要があります。
  • [インデックスを再構築するデータセット] パラメーターの [値の追加] ボタンは、ModelBuilder でのみ使用されます。ModelBuilder では、先のツールが実行されていないか、出力データが存在しないために、[インデックスを再構築するデータセット] パラメーターに値が表示されない場合があります。[値の追加] ボタンを使用すると、ダイアログ ボックスを完了してモデルの作成を続行できるように、必要な値が追加されます。
  • このツールは、SAP HANA ではサポートされていません。

パラメーター

ラベル説明データ タイプ
入力データベース コネクション

インデックスを再構築するデータを含むエンタープライズ ジオデータベースへのコネクション (*.sde ファイル)。

Workspace
システム テーブルを含む

ステートおよびステート系統テーブルのインデックスを再構築するかどうかを指定します。

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

このオプションの適用対象となるのは、ジオデータベースだけです。データベースに接続する場合、このオプションは使用できません。

  • オフ - ステートおよびステート系統テーブルのインデックスを再構築しません。これがデフォルトです。
  • オン - ステートおよびステート系統テーブルのインデックスを再構築します。
Boolean
インデックスを再構築するデータセット
(オプション)

インデックスを再構築するデータセットの名前。接続したユーザーが所有するデータセットだけが表示されます。

String
差分テーブルのみを再構築
(オプション)

選択したデータセットの差分テーブルのインデックスだけを再構築するかどうかを示します。入力データセットのリストでデータセットが選択されていない場合は、このオプションを使用できません。

このオプションの適用対象となるのは、ジオデータベースだけです。データベースに接続する場合、このオプションは使用できません。

  • オン - 選択したデータセットの差分テーブルのみでインデックスを再構築します。このオプションは、選択したデータセットのビジネス テーブルの更新頻度が低く、差分テーブルに含まれる編集の量が多い場合に使用できます。これがデフォルトです。
  • オフ - 選択したデータセットのすべてのインデックスを再構築します。空間インデックスの他に、ユーザーが作成した属性インデックスとデータセットでジオデータベースが保守しているすべてのインデックスが含まれます。
Boolean

派生した出力

ラベル説明データ タイプ
更新されたワークスペース

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

ワークスペース

arcpy.management.RebuildIndexes(input_database, include_system, {in_datasets}, {delta_only})
名前説明データ タイプ
input_database

インデックスを再構築するデータを含むエンタープライズ ジオデータベースへのコネクション (*.sde ファイル)。

Workspace
include_system

ステートおよびステート系統テーブルのインデックスを再構築するかどうかを指定します。

注意:

このオプションを正常に実行するには、input_database に指定した接続ファイル内のジオデータベース管理者として接続する必要があります。

このオプションの適用対象となるのは、ジオデータベースだけです。データベースに接続する場合、このオプションは無視されます。

  • NO_SYSTEM ステートおよびステート系統テーブルのインデックスを再構築しません。これがデフォルトです。
  • SYSTEM ステートおよびステート系統テーブルのインデックスを再構築します。
Boolean
in_datasets
[in_datasets,...]
(オプション)

インデックスを再構築するデータセットの名前。データセット名には、input_database からの相対パスを使用します。絶対パスは入力として使用できません。

String
delta_only
(オプション)

選択したデータセットでインデックスを再構築する方法を指定します。このオプションは [in_datasets] が空の場合は効果がありません。

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

  • ALL選択したデータセットのすべてのインデックスを再構築します。空間インデックスの他に、ユーザーが作成した属性インデックスとデータセットでジオデータベースが保守しているすべてのインデックスが含まれます。
  • ONLY_DELTAS選択したデータセットの差分テーブルのみでインデックスを再構築します。このオプションは、選択したデータセットのビジネス テーブルの更新頻度が低く、差分テーブルに含まれる編集の量が多い場合に使用できます。これがデフォルトです。
Boolean

派生した出力

名前説明データ タイプ
out_workspace

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

ワークスペース

コードのサンプル

RebuildIndexes (インデックスの再構築) の例 1 (Python ウィンドウ)

次の例は、Python ウィンドウでインデックスを再構築する方法を示しています。

# Import system modules
import arcpy

arcpy.RebuildIndexes_management("c:/Connections/GDB@DC@server.sde", "NO_SYSTEM","db1.GDB.Roads;db1.GDB.Parcels", "ALL")
RebuildIndexes (インデックスの再構築) の例 2 (スタンドアロン スクリプト)

次の例は、スタンドアロン スクリプトでインデックスを再構築する方法を示しています。

# Name: RebuildIndexes.py
# Description: rebuilds indexes on delta tables for all datasets in an
# enterprise geodatabase

# Import system modules
import arcpy, os

# set workspace
workspace = arcpy.GetParameterAsText(0)

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

# NOTE: Rebuild indexes 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 rebuild indexes
# Note: to use the "SYSTEM" option the workspace user must be an administrator.
arcpy.RebuildIndexes_management(workspace, "NO_SYSTEM", userDataList, "ALL")
print('Rebuild Complete')

ライセンス情報

  • Basic: No
  • Standard: Yes
  • Advanced: Yes

関連トピック