Восстановление индексов не изменяет % фрагментации для некластеризованных индексов

Для начала, я не DBA, и я работаю над восстановлением индексов.

Я использовал удивительный сценарий TSQL из MSDN для изменения индекса на основе процента фрагмента, возвращенного dm_db_index_physical_stats и если процент фрагмента, больше чем 30 затем делают ВОССТАНАВЛИВАНИЕ или делают РЕОРГАНИЗОВЫВАНИЕ.

То, что я узнал, было в первом повторении, было 87 записей, которые должны были дефрагментироваться. Я запустил скрипт, и все 87 индексов (кластеризируемый и некластеризованный) были восстановлены или повторно индексированы. Когда я получил статистику от dm_db_index_physical_stats, было все еще 27 записей, которые должны были дефрагментироваться, и всеми тезисами НЕ были КЛАСТЕРНЫЕ ИНДЕКСЫ. Все Кластерные индексы были зафиксированы.

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

Примечание: Я не выполнял, любой вставляет обновления//, удаляет к таблицам во время этих повторений. Тем не менее Восстанавливание/реорганизовывание не привело ни к какому изменению.

Больше информации: Используя Сценарий SQL 2008 года как доступный в MSDN http://msdn.microsoft.com/en-us/library/ms188917.aspx

Вы могли объяснить, почему эти 27 записей не кластерные индексы не изменяются измененный/?

Любая справка на этом высоко ценилась бы.

Поклон

6
задан skaffman 28 May 2010 в 12:07
поделиться

1 ответ

SQL Server не будет перестраивать индексы, которые недостаточно велики. Посмотрите на fragment_count (это одно из полей в представлении sys.dm_db_index_physical_stats), возможно, он довольно низкий для этих 27 индексов.

12
ответ дан 9 December 2019 в 20:41
поделиться
Другие вопросы по тегам:

Похожие вопросы: