Обзор фрагментации индекса
Что такое фрагментация индекса и почему мне стоит на ней сосредоточиться: Фрагментация возникает, когда логический порядок в индексе (основанный на значении ключа в индексе) не совпадает с физическим порядком на страницах индекса на страницах индекса в индексе страниц, содержащихся в индексе. Всякий раз, когда выполняется операция вставки, обновления или удаления базовых данных, движок базы данных автоматически изменяет индекс. Например, добавление строк в таблицу может привести к тому, что разделённые строки будут хранить существующие страницы в индексе, чтобы освободить место для вставки новых ключей. Со временем эти изменения могут привести к тому, что информация в индексе будет рассеяна по базе данных (содержащей фрагменты). Фрагментация возникает, когда логический порядок (на основе ключевого значения) на страницах, содержащихся в индексе, не совпадает с физическим порядком в файле данных. Большое количество фрагментированных индексов может замедлять производительность запросов, поскольку для поиска данных, на которые указывает индекс, требуется дополнительный ввод-вывод. Больше ввода-вывода может привести к медленному реагированию приложения, особенно при операциях сканирования.
Проверьте фрагментацию индекса базы данных
Команда:
Существует два способа дефрагментации: реорганизация и повторное создание индексов; восстановление индексов означает удаление старых индексов и восстановление новых индексов в транзакции, что восстанавливает место на жёстком диске исходного индекса и выделяет новое место для создания структуры индекса. Реорганизация индексов означает отсутствие выделения нового пространства для хранения, реорганизацию листовых узлов индексной структуры на основе исходного пространства, чтобы логический и физический порядок страниц данных оставались согласованными, а также освобождение избыточного пространства в индексе.
Используйте функцию sys.dm_db_index_physical_stats для обнаружения степени фрагментации, поля avg_fragmentation_in_percent процента возвращенных логических фрагментов; в целом Microsoft рекомендует порог в 30%:
avg_fragmentation_in_percent >5% и <=30%: ALTER INDEX REORGANIZE; avg_fragmentation_in_percent >30%: ALTER INDEX REBUILD;
avg_fragmentation_in_percent: Процент фрагментации индекса, если фрагментация меньше 10%~20%, фрагментация вряд ли станет проблемой,Если фрагментация индекса составляет 20%~40%, фрагментация может быть проблемой, но разрешение индекса можно устранить с помощью реорганизации индекса, а крупномасштабная фрагментация (когда фрагментация превышает 40%) может потребовать реконструкции индекса.
Запрос фрагментационной информации для всех индексов данной таблицы
Переиндексация таблиц
Перестройте индекс всех таблиц во всей базе данных
Ресурсы:Вход по гиперссылке виден.
|