Место на диске журнала транзакций для операций обработки индекса

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

Рекомендации

При крупномасштабных операциях обработки индекса следует принять во внимание эти рекомендации.

  1. Перед тем как выполнять оперативную крупномасштабную обработку индекса, убедитесь в том что журнал транзакций зарезервирован и усечен, а также что в журнале достаточно места для хранения проектируемого индекса и пользовательских транзакций.
  2. Рассмотрите возможность установки параметра SORT_IN_TEMPDB в положение ON для операции обработки индекса. Это отделяет транзакции индекса от параллельных пользовательских транзакций. Транзакции индекса будут храниться в журнале транзакций tempdb, а параллельные пользовательские транзакции — в журнале транзакций пользовательской базы данных. Это позволяет при необходимости выполнить усечение журнала транзакций пользовательской базы данных во время обработки индекса. Кроме того, если журнал tempdb находится не на одном с журналом пользовательской базы данных диске, два журнала не конкурируют в использовании одного места на диске.
    ms184246.note(ru-ru,SQL.90).gifПримечание.
    Убедитесь том, что база данных и журнал транзакций tempdb имеют достаточно места на диске для выполнения обработки индекса. Журнал транзакций tempdb не может быть усечен до тех пор, пока не завершится обработка индекса.
  3. Используйте модель восстановления базы данных, обеспечивающую минимальное число записей для операции обработки индекса. Это позволит уменьшить размер журнала и предотвратить заполнение пространства журнала. Дополнительные сведения см. в разделе Выбор модели восстановления для операций с индексами.
  4. Не выполняйте оперативную обработку индекса в явной транзакции. Усечение журнала нельзя будет выполнить до завершения явной транзакции.

См. также

Основные понятия

Требования к месту на диске для DDL-операций индекса

Другие ресурсы

Определение требований к месту на диске для индексов

Справка и поддержка

Получение помощи по SQL Server 2005