Место на диске журнала транзакций для операций обработки индекса
При крупномасштабных операциях обработки индекса могут формироваться большие объемы загружаемых данных, что может привести к быстрому заполнению журнала транзакций. Чтобы обеспечить возможность отката операции обработки индекса, журнал транзакций не может быть усечен до тех пор, пока операция обработки индекса не завершится; однако во время обработки индекса возможно выполнение резервного копирования журнала. Следовательно, журнал транзакций должен иметь достаточно места для хранения как транзакций обработки индекса, так и любых параллельных пользовательских транзакций, выполняющихся во время обработки индекса. Это верно для операций обработки индекса как в автономном, так и в оперативном режиме. Так как доступ к выделенным таблицам во время обработки индекса в автономном режиме невозможен, количество пользовательских транзакций может быть небольшим и заполнение журнала не будет таким стремительным. Операции обработки индекса в оперативном режиме не препятствуют пользовательской работе, поэтому обработка больших индексов вкупе с большим количеством параллельных пользовательских транзакций может привести к непрерывному заполнению журнала транзакций без возможности его усечения.
Рекомендации
При крупномасштабных операциях обработки индекса следует принять во внимание эти рекомендации.
- Перед тем как выполнять оперативную крупномасштабную обработку индекса, убедитесь в том что журнал транзакций зарезервирован и усечен, а также что в журнале достаточно места для хранения проектируемого индекса и пользовательских транзакций.
- Рассмотрите возможность установки параметра SORT_IN_TEMPDB в положение ON для операции обработки индекса. Это отделяет транзакции индекса от параллельных пользовательских транзакций. Транзакции индекса будут храниться в журнале транзакций tempdb, а параллельные пользовательские транзакции — в журнале транзакций пользовательской базы данных. Это позволяет при необходимости выполнить усечение журнала транзакций пользовательской базы данных во время обработки индекса. Кроме того, если журнал tempdb находится не на одном с журналом пользовательской базы данных диске, два журнала не конкурируют в использовании одного места на диске.
Примечание. Убедитесь том, что база данных и журнал транзакций tempdb имеют достаточно места на диске для выполнения обработки индекса. Журнал транзакций tempdb не может быть усечен до тех пор, пока не завершится обработка индекса. - Используйте модель восстановления базы данных, обеспечивающую минимальное число записей для операции обработки индекса. Это позволит уменьшить размер журнала и предотвратить заполнение пространства журнала. Дополнительные сведения см. в разделе Выбор модели восстановления для операций с индексами.
- Не выполняйте оперативную обработку индекса в явной транзакции. Усечение журнала нельзя будет выполнить до завершения явной транзакции.
См. также
Основные понятия
Требования к месту на диске для DDL-операций индекса
Другие ресурсы
Определение требований к месту на диске для индексов