重建索引 (Data Management)
摘要
更新企业级地理数据库中存储的数据集和系统表的索引。此工具用于在企业级地理数据库中重新构建现有属性或空间索引。过期的索引可能会降低地理数据库的性能。
用法
- 数据必须来自企业级地理数据库。此工具不适用于文件或个人地理数据库。
- 执行数据加载、删除、更新和压缩操作后,在数据库中重新构建索引很重要。
- 使用表或数据集时,此工具将重新构建基表、增量表和归档表的属性和空间索引。
- 包括系统表参数用于确定状态和状态谱系表是否需要重新构建索引。未选择该选项时,将不重新构建这些表的索引。如果未选中包括系统表参数,则在待重建索引的数据集参数中至少需要选择一个数据集该工具才能运行。
- 待重建索引的数据集参数的添加值按钮仅可在模型构建器中使用。在模型构建器中,如果先前的工具尚未运行或其派生数据不存在,则可能不会使用值来填充“待重建索引的数据集”参数。添加值按钮可用于添加所需值,以完成对话框并继续构建模型。
语法
RebuildIndexes_management (input_database, include_system, {in_datasets}, delta_only)
参数 | 说明 | 数据类型 |
input_database |
包含待更新数据的企业级数据库。 | Workspace |
include_system |
指示是否重新构建状态和状态谱系表的索引。 注: 要成功执行此选项,您必须是地理数据库管理员。 此选项仅适用于地理数据库。如果输入工作空间为数据库,则此选项将被忽略。
| Boolean |
in_datasets [in_datasets,...] (可选) | 要重新构建索引的数据集的名称。数据集名称使用指向输入工作空间的相对路径;不能输入完整路径。 | Dataset |
delta_only | 指示如何在选定数据集中重新构建索引。如果 input_datasets 为空,则此选项不起作用。 此选项仅适用于地理数据库。如果输入工作空间为数据库,则此选项将被忽略。
| Boolean |
代码实例
RebuildIndexes 示例 1(Python 窗口)
以下示例演示了如何在 ArcGIS 的 Python 窗口中重新构建索引。
# Import system modules
import arcpy
arcpy.RebuildIndexes_management("Database 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'
环境
此工具不使用任何地理处理环境
相关主题
许可信息
ArcGIS for Desktop Basic:否
ArcGIS for Desktop Standard:是
ArcGIS for Desktop Advanced:是
9/15/2013