Анализировать наборы данных (Управление данными)

Сводка

Обновляет статистику базы данных базовых таблиц, дельта-таблиц и архивных таблиц, а также статистику индексов этих таблиц. Этот инструмент используется в многопользовательских базах геоданных для получения оптимальной производительности оптимизатора запросов РСУБД. Устаревшая статистика может стать причиной низкой производительности базы геоданных.

Использование

  • Входная рабочая область должна быть как многопользовательской базой геоданных. Анализ наборов данных не поддерживает файловые или персональные базы геоданных.

  • После операций загрузки, удаления, обновления и сжатия данных, важно обновить статистику RDBMS в базах данных Oracle, SQL Server, DB2 или PostgreSQL.

  • Опция Включить системные таблицы (Include System Tables) помогает определить, будут ли проанализированы состояния и таблицы истории изменений состояний. Если опция не выбрана, эти таблица не анализируются; если выбрана, таблицы анализируются.

  • При работе с таблицами или наборами данных, этот инструмент обновляет статистику базовых таблиц, дельта-таблиц и таблиц архивов, а также статистику индексов этих таблиц.

  • В параметре Наборы данных для анализа (Datasets to Analyze) кнопка Добавить значение (Add Value) используется только в ModelBuilder. В ModelBuilder, если предыдущий инструмент не был запущен или нет результатов его работы, параметр Наборы данных для анализа (Datasets to Analyze) может быть не заполнен значениями. Кнопка Добавить значение (Add Value) позволяет добавлять нужные значения, так что вы можете продолжить построение модели.

Синтаксис

arcpy.management.AnalyzeDatasets(input_database, include_system, {in_datasets}, {analyze_base}, {analyze_delta}, {analyze_archive})
ParameterОбъяснениеТип данных
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

Производные выходные данные

NameОбъяснениеТип данных
out_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 = 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")

Информация о лицензиях

  • Basic: Нет
  • Standard: Да
  • Advanced: Да

Связанные разделы