分析数据集 (数据管理)

摘要

更新基表、增量表和存档表的数据库统计数据,以及这些表的索引的统计数据。 此工具用于企业级地理数据库,以便关系数据库管理系统 (RDBMS) 的查询优化程序获得最佳性能。 过时的统计数据可能会影响地理数据库的性能。

使用情况

  • 输入工作空间必须为数据库或企业级地理数据库。

  • 执行完数据加载、删除、更新和压缩操作后,在数据库中更新 RDBMS 统计数据十分重要。

  • 包括系统表参数用于确定状态和状态谱系表是否需要分析。 这些表将追踪传统版本。 未选中此参数时,不会分析表;选中此参数时,将分析表。

参数

标注说明数据类型
输入数据库连接

包含待分析数据的数据库。

Workspace
包括系统表

指定是否收集状态和状态谱系表中的统计数据。

  • 未选中 - 不收集状态和状态谱系表中的统计数据。 这是默认设置。
  • 选中 - 收集状态和状态谱系表中的统计数据。
    注:

    要激活此参数,您必须具有地理数据库管理员身份。

    此参数仅适用于地理数据库。 如果输入工作空间为数据库,则此参数将处于非活动状态。

Boolean
待分析数据集
(可选)

待分析数据集的名称。 仅显示已连接用户所有的数据集。

String
分析所选数据集的基表
(可选)

指定是否分析所选数据集的基表。

注:
此参数仅适用于地理数据库。 如果输入工作空间为数据库,则此参数将处于非活动状态。

  • 选中 - 收集所选数据集基表的统计数据。 这是默认设置。
  • 未选中 - 不收集所选数据集基表的统计数据。
Boolean
分析所选数据集的增量表
(可选)

指定是否分析所选数据集的增量表。

注:
此参数仅适用于包含传统版本的地理数据库。 如果输入工作空间为数据库或不参与传统版本化,则此参数将处于非活动状态。

  • 选中 - 收集所选数据集增量表的统计数据。 这是默认设置。
  • 未选中 - 不收集所选数据集增量表的统计数据。
Boolean
分析所选数据集的存档表
(可选)

指定是否分析所选数据集的存档表。

注:
此参数仅适用于包含启用了存档的数据集的地理数据库。 如果输入工作空间为数据库,则此参数将处于非活动状态。

  • 选中 - 收集所选数据集存档表的统计数据。 这是默认设置。
  • 未选中 - 不收集所选数据集存档表的统计数据。
Boolean

派生输出

标注说明数据类型
更新的工作空间

已更新的工作空间。

Workspace

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

已更新的工作空间。

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 = "C:\\MyProject\\MyDataConnection.sde"

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

# NOTE: Analyze Datasets can accept a Python list of datasets.

# Get the user name for the workspace
userName = arcpy.Describe(workspace).connectionProperties.user

# Get a list of all the datasets the user owns by using a wildcard that incldues the user name
# First, get all the stand alone tables, feature classes and rasters.
dataList = arcpy.ListTables(userName + "*") + arcpy.ListFeatureClasses(userName + "*") + arcpy.ListRasters(userName + "*")

# 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(userName + "*", "Feature"):
    arcpy.env.workspace = os.path.join(workspace,dataset)
    dataList += arcpy.ListFeatureClasses(userName + "*") + arcpy.ListDatasets(userName + "*")

# reset the workspace
arcpy.env.workspace = workspace

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

相关主题