摘要
更新基表、增量表和存档表的数据库统计数据,以及这些表的索引的统计数据。此工具用于企业级地理数据库,以便 RDBMS 的查询优化程序获得最佳性能。过时的统计数据可能会降低地理数据库的性能。
用法
- 输入工作空间必须为企业级数据库。分析数据集不适用于文件或个人地理数据库。
- 执行完数据加载、删除、更新和压缩操作后,在 Oracle、SQL Server、DB2、PostgreSQL 或 Informix 数据库中更新 RDBMS 统计数据十分重要。
- 包括系统表选项用于确定状态和状态谱系表是否需要分析。未选中该选项时,系统不会分析这些表格;选中时,系统会分析它们。
- 使用表格或数据集时,此工具会对基表、增量表和存档表的数据库统计数据以及这些表的索引的统计数据进行更新。
- 要分析的数据集参数的添加值按钮仅可在模型构建器中使用。在模型构建器中,如果先前的工具尚未运行或其派生数据不存在,则可能不会使用值来填充要分析的数据集参数。添加值按钮允许您添加所需值,以便继续构建模型。
语法
AnalyzeDatasets_management (input_database, include_system, {in_datasets}, {analyze_base}, {analyze_delta}, {analyze_archive})
参数 | 说明 | 数据类型 |
input_database | 包含待分析数据的企业级数据库。 | Workspace |
include_system | 指示是否收集状态和状态谱系表中的统计数据。
| Boolean |
in_datasets [in_datasets,...] (可选) | 要分析的数据集的名称。此数据集可以是一个单独的数据集或是一个 Python 数据集列表。数据集名称使用指向输入工作空间的相对路径;不能输入完整路径。 请注意,连接的用户必须是所提供的数据集的数据所有者。 | String |
analyze_base (可选) | 指示是否分析所选数据集的基表。 此选项仅适用于地理数据库。如果输入工作空间为数据库,此选项将被忽略。
| Boolean |
analyze_delta (可选) | 指示是否分析所选数据集的增量表。 此选项仅适用于地理数据库。如果输入工作空间为数据库,此选项将被忽略。
| Boolean |
analyze_archive (可选) | 指示是否分析所选数据集的存档表。 此选项仅适用于地理数据库。如果输入工作空间为数据库,此选项将被忽略。
| Boolean |
代码实例
AnalyzeDatasets 示例 1(Python 窗口)
以下 Python 窗口脚本演示了如何在即时模式下使用“分析数据集”工具。
# 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(独立脚本)
以下独立脚本演示了如何使用“分析数据集”工具分析给定用户连接的所有数据集。
# 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")