Операция сжатия базы геоданных

Операция сжатия базы геоданных удаляет из системной таблицы ненужные состояния и строки, которые отслеживают версии и версионные изменения.

ПодсказкаПодсказка:

Чтобы понять операцию сжатия, сначала нужно понять, как работают версии. Если вы знакомы с этой концепцией, см. раздел Введение в версионное редактирование.

Что такое операция сжатия?

Операция сжатия удаляет состояния, которые более не связаны с версией, и переносит записи из дельта таблиц в бизнес-таблицу. Операцию сжатия может выполнять только администратор базы геоданных. Она выполняется для всех состояний базы геоданных независимо от владельца версии.

Операции сжатия необходимы, так как по мере редактирования базы геоданных дельта-таблицы увеличиваются в размерах и возрастает количество состояний. Чем больше таблицы и чем больше состояний, тем больше данных ArcGIS должен будет обрабатывать каждый раз при отображении версии или выполнении к ней запроса. Таким образом, самое большое влияние на производительность оказывает не число версий, а объем изменений, содержащихся в таблицах A и D для каждой версии. В результате версии могут иметь различное время ответа на запросы.

Для поддержания должного уровня производительности базы данных администратору базы геоданных необходимо периодически выполнять операцию сжатия для удаления неиспользуемых данных.

Для сжатия базы геоданных можно использовать команду Сжать (Compress) ArcGIS for Desktop или инструмент геообработки Сжать (Compress), а также сценарий Python. Сведения о сжатии базы геоданных в дереве каталога см. в разделе Сжатие многопользовательской базы геоданных, а сведения об инструменте геообработки и скрипте см. в разделе Сжатие.

Что происходит во время операции сжатия?

Операция сжатия сначала сканирует память для поиска конфигурации дерева состояний экземпляра. С помощью этой информации удаляются все состояния, которые не участвуют в родительской версии. При удалении состояния удаляются все строки из дельта-таблиц, связанных с этим состоянием.

На следующем этапе операции сжатия происхождение состояний кандидата сжимается в одно состояние. Происхождение кандидата — это набор состояний, которые можно сжать в одно состояние, не влияя на логическое представление таблицы в данной версии.

На последнем этапе строки из дельта-таблиц перемещаются в базовые (или бизнес) таблицы, если это необходимо.

На каждом этапе операции транзакции базы данных запускаются и останавливаются для каждой сжимаемой таблицы. Транзакция проверяет согласованность каждой таблицы на всех этапах процесса.

Операцию сжатия можно остановить во время выполнения, так как она транзакционно согласована. Поэтому при возникновении ошибки или при непредвиденной остановке операции сжимаемые версионные таблицы будут логически верны для любой версии. Остановить операцию сжатия можно, если вы запустили ее, когда пользователи все еще подключены к базе геоданных, а потом узнали, что на сжатие уходит много системных ресурсов. В этом случае вы можете остановить операцию и выполнить ее повторно с меньшим числом подключенных пользователей.

Убедитесь, что вы создали достаточно логических журналов для обработки максимально объемной транзакции. Обычно при сжатии базы геоданных возникают длительные транзакции. Необходимо создать резервные копии логических журналов до достижения порогового значения, заданного параметром LTXHWM в файле onconfig Informix. Не следует менять параметры LTXHWM и LTXEHWM без согласия эксперта технической поддержки Informix, знакомого с поведением Informix Spatial DataBlade. Если транзакций завершается с ошибкой и отменяется из-за достижения порогового значения, логических журналов недостаточно.

Во время сжатия крупных баз геоданных базе данных Informix часто не хватает блокировок. Чтобы избежать этого, во время сжатия таблицы блокируются в исключительном режиме. Если вы хотите сжать таблицы с существующими подключениями пользователей, необходимо отключить исключительную блокировку во время сжатия. Параметр USE_EXCLUSIVE_LOCKING DBTUNE можно задать как false, чтобы разрешить сжатие с текущими подключениями пользователей. Можно изменить значение параметра USE_EXCLUSIVE_LOCKING с помощью операции sdedbtune. Сведения об использовании этой команды см. в руководстве по командам администрирования, которое устанавливается вместе сервером приложений ArcSDE, или справочнике по командам администрирования.

Полное сжатие базы геоданных

В полностью сжатой базы геоданных в дельта-таблицах нет строк, а дерево состояний обнулено. При полном сжатии базы геоданных производительность максимальная. Для этого выполните следующие действия:

Результаты каждой операции сжатия можно увидеть в таблице COMPRESS_LOG в базе геоданных (SDE_compress_log в базах геоданных SQL Server и PostgreSQL). Вы также можете изучить таблицу VERSIONS (SDE_versions в SQL Server и PostgreSQL), чтобы проверить, стал ли ИД состояния версии DEFAULT равным нулю. Если это так и других незаконченных версий нет, база полностью сжата.

Согласование, закрепление, удаление версий и отключение всех пользователей перед операцией сжатия не всегда возможно. Например, если вы отслеживаете историю с помощью версий или вам нужно сохранить версии дизайна для проекта, исторические версии и версии дизайна содержат состояние в дереве состояний. Поэтому эти состояния не будут удалены во время сжатия базы геоданных. Вы можете выполнить сжатие без выполнения всех этих действий и при этом производительность улучшится.

Частота операций сжатия

Частота выполнения операции сжатия зависит от объема изменений в базе геоданных. Если их много, базу геоданных нужно сжимать раз в день. Для среднего объема изменений базу геоданных нужно сжимать раз в неделю.

ПримечаниеПримечание:

Важно не делать период между сжатиями слишком длинным. Чем больше версионных изменений, тем дольше выполняется сжатие. Если не сжимать базу геоданных хотя бы раз в неделю, на сжатие может уйти несколько часов.

После сжатия базы геоданных

Вы должны обновить статистику базы геоданных после ее сжатия. Администратор базы геоданных должен обновить статистику системных таблиц, а отдельные пользователи могут обновить статистику для своих измененных наборов данных. Сведения об обновлении статистики см. в разделе Использование инструмента Анализировать наборы данных (Analyze Datasets) для обновления статистики для системных таблиц баз геоданных или разделе Обновление статистики базы геоданных с помощью команды Анализировать (Analyze).

5/10/2014