Поделиться через


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

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

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

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

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

  2. Рассмотрите возможность установки параметра SORT_IN_TEMPDB в положение ON для операции обработки индекса. Это отделяет транзакции индекса от параллельных пользовательских транзакций. Транзакции индекса будут храниться в журнале транзакций tempdb, а параллельные пользовательские транзакции — в журнале транзакций пользовательской базы данных. Это позволяет при необходимости выполнить усечение журнала транзакций пользовательской базы данных во время обработки индекса. Кроме того, если журнал tempdb находится не на одном с журналом пользовательской базы данных диске, два журнала не конкурируют в использовании одного места на диске.

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

    Убедитесь том, что база данных и журнал транзакций tempdb имеют достаточно места на диске для выполнения обработки индекса. Журнал транзакций tempdb не может быть усечен до тех пор, пока не завершится обработка индекса.

  3. Используйте модель восстановления базы данных, обеспечивающую минимальное число записей для операции обработки индекса. Это позволит уменьшить размер журнала и предотвратить заполнение пространства журнала. Дополнительные сведения см. в разделе Выбор модели восстановления для операций с индексами.

  4. Не выполняйте оперативную обработку индекса в явной транзакции. Усечение журнала нельзя будет выполнить до завершения явной транзакции.