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