Доступно с лицензией Standard или Advanced.
Статистика базы данных используется оптимизатором системы управления базами данных для выбора оптимального плана для запросов. Для поддержания производительности запросов, обновите статистику после существенного изменения содержания таблицы или класса объектов, например, после загрузки в нее большого количество записей или выполнения в таблице значительной правки.
Статистика может обновляться для следующих типов таблиц и индексов в многопользовательской базе геоданных:
- Определяемые пользователем таблицы и классы пространственных объектов и связанные с ними индексы
- Дельта-таблицы таблиц и классов пространственных объектов, зарегистрированных для традиционных версий, и индексы в дельта-таблицах
- Исторические архивные таблицы таблиц и классов пространственных объектов, которые включены для архивирования базы геоданных, и индексы архивных таблиц
- Системные таблицы базы геоданных
Примечание:
В ходе обновления статистики базы данных выполняется большое количество операций ввода-вывода. Обновляйте статистику во время наименьшего трафика в базе данных.
Администратор базы данных может использовать инструменты базы данных для обновления статистики базы данных для созданных пользователем таблиц и классов пространственных объектов. Однако при обновлении статистики по таблицам и классам пространственных объектов в многопользовательской базе геоданных, администратор базы данных должен также обновить статистику по соответствующим внутренним таблицам базы геоданных, которые связаны с ними. Чтобы обеспечить обновление статистики по этим внутренним таблицам, запустите инструмент геообработки Анализировать наборы данных или функцию AnalyzeDatasets_management ArcPy.
Также используйте инструмент геообработки Анализировать наборы данных или функцию AnalyzeDatasets_management ArcPy для обновления статистики базы данных для системных таблиц базы геоданных. Обновите статистику для системных таблиц базы геоданных после добавления в базу геоданных множества новых таблиц или классов пространственных объектов.
Вы должны запустить инструмент или функцию в качестве владельца таблиц. В случае системных таблиц базы геоданных, владельцем является администратор базы геоданных.
Использование инструмента Анализировать наборы данных
Вы можете используйте инструмент геообработки Анализировать наборы данных для обновления статистики базы данных. Этот инструмент позволяет владельцам данных выбирать, какие таблицы и классы пространственных объектов в наборе данных анализировать, и позволяет администратору базы геоданных обновлять статистику по системным таблицам базы геоданных.
- Запустите ArcGIS Pro и подключитесь к базе геоданных, содержащей таблицы, для которых необходимо обновить статистику.
Необходимо подключаться в качестве владельца набора данных для анализа.
- Откройте инструмент геообработки Анализировать наборы данных.
Вы можете ввести имя инструмента в поле Поиск, чтобы найти и запустить инструмент, либо перейти к нему в группе инструментов Администрирование базы геоданных набора инструментов Управление данными.
- Используйте файл подключения, созданный вами на шаге 1, в качестве входной рабочей области.
- Выберите один или несколько из приведенных ниже вариантов, чтобы указать таблицы для анализа:
- Чтобы обновить статистику для выбранных пользовательских таблиц, оставьте включенной опцию Анализировать базовые таблицы выбранных наборов данных.
- Отметьте Анализировать дельта-таблицы выбранных наборов данных, чтобы обновить статистику добавлений и удалить таблицы наборов данных традиционных версий.
- Отметьте Анализировать архивные таблицы выбранных наборов данных для обновления статистики для исторических архивных таблиц наборов данных, которые разрешены для архивирования.
- Отметьте Включить системные таблицы для обновления статистики по системным таблицам базы геоданных. Файл подключения к базе данных, указанный на предыдущем шаге, должен быть подключен от имени администратора базы геоданных, чтобы использовать эту опцию.
- Щелкните Запустить.
Статистика обновляется для выбранных вами таблиц и их индексов.
Запустите скрипт Python
Вы можете вызвать функцию AnalyzeDatasets_management ArcPy в скрипте Python для обновления статистики по базовым таблицам, дельта-таблицам, архивным таблицам и/или системным таблицам базы геоданных. Так же, как с инструментом Анализировать наборы данных, вы должны запустить функцию AnalyzeDatasets_management ArcPy в качестве владельца анализируемых вами таблиц.
Когда вы запустите следующий скрипт Python, укажите файл подключения к базе данных (.sde). Скрипт обновляет статистику для всех таблиц, принадлежащих пользователю, указанному в подключении.
Например, для запуска данного скрипта в Linux с использованием файла подключения к базе данных entgdb.sde, расположенного в /usr/connections, введите следующее:
./ AnalyzeDatasets.py /usr/connections/entgdb.sde
Для запуска данного скрипта для обновления статистики в системных таблицах, укажите файл подключения, который выполняет подключение, как администратор базы геоданных.
# 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.management.AnalyzeDatasets(workspace, "NO_SYSTEM", dataList, "ANALYZE_BASE", "ANALYZE_DELTA", "ANALYZE_ARCHIVE")
print("Analyze Complete")