Анализировать наборы данных (Analyze Datasets) (Управление данными)
Резюме
Обновляет статистику базы данных базовых таблиц, дельта-таблиц и архивных таблиц, а также статистику индексов этих таблиц. Этот инструмент используется в многопользовательских базах геоданных для получения оптимальной производительности оптимизатора запросов РСУБД. Устаревшая статистика может стать причиной низкой производительности базы геоданных.
Использование
- Входная рабочая область должна быть как многопользовательской базой геоданных. Анализ наборов данных не поддерживает файловые или персональные базы геоданных.
- После операций загрузки, удаления, обновления и сжатия данных, важно обновить статистику РСУБД в базах данных Oracle, SQL Server, DB2 или Informix.
- Опция Включить системные таблицы (Include System Tables) помогает определить, будут ли проанализированы состояния и таблицы истории изменений состояний. Если опция не выбрана, эти таблица не анализируются; если выбрана, таблицы анализируются.
- При работе с таблицами или наборами данных, этот инструмент обновляет статистику базовых таблиц, дельта-таблиц и таблиц архивов, а также статистику индексов этих таблиц.
- В параметре Наборы данных для анализа (Datasets to Analyze) кнопка Добавить значение (Add Value) используется только в ModelBuilder. В ModelBuilder, если предыдущий инструмент не был запущен или нет результатов его работы, параметр Наборы данных для анализа (Datasets to Analyze) может быть не заполнен значениями. Кнопка Добавить значение (Add Value) позволяет добавлять нужные значения, так что вы можете продолжить построение модели.
Синтаксис
Параметр | Объяснение | Тип данных |
input_database |
Многопользовательская база геоданных, содержащая данные для анализа. | Workspace |
include_system | Показывает, будет ли собрана статистика по состояниям и историям изменений состояний. Примечание: Для активации этой опции необходимо иметь права администратора базы геоданных. Данная опция применяется только к базам геоданных. Если входная рабочая область является базой данных, эта опция будет проигнорирована.
| Boolean |
in_datasets [in_datasets,...] (дополнительно) | Имена наборов данных, которые будут анализироваться. Разрешаются отдельные наборы данных или список наборов данных Python. Имена наборов данных используют пути относительно входной рабочей области; полные пути не допускаются в качестве входных данных. Примечание: Подключенный пользователь должен быть владельцем данных предоставленных наборов данных. | String |
analyze_base (дополнительно) | Показывает, будут ли анализироваться выбранные таблицы набора данных. Данная опция применяется только к базам геоданных. Если входная рабочая область является базой данных, эта опция будет проигнорирована.
| Boolean |
analyze_delta (дополнительно) | Показывает, будут ли анализироваться выбранные дельта-таблицы набора данных. Данная опция применяется только к базам геоданных. Если входная рабочая область является базой данных, эта опция будет проигнорирована.
| Boolean |
analyze_archive (дополнительно) | Показывает, будут ли анализироваться таблицы архивов выбранного набора данных. Данная опция применяется только к базам геоданных. Если входная рабочая область является базой данных, эта опция будет проигнорирована.
| Boolean |
Пример кода
Представленный скрипт окна Python демонстрирует порядок использования инструмента Анализировать наборы данных (Analyze Datasets) в непосредственном режиме.
# Import system modules
import arcpy
arcpy.AnalyzeDatasets_management("Database Connections/tenone@sde.sde",
"SYSTEM",
"gdb.city;gdb.state;map.lines",
"ANALYZE_BASE",
"ANALYZE_DELTA",
"ANALYZE_ARCHIVE")
Представленный автономный скрипт демонстрирует порядок использования инструмента Анализировать наборы данных (Analyze Datasets) для анализа всех наборов данных существующего подключения пользователя.
# Name: AnalyzeDatasets.py
# Description: analyzes all datasets in an enterprise geodatabase
# for a given user.
# Import system modules
import arcpy, 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"