Для начала, я не 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 записей не кластерные индексы не изменяются измененный/?
Любая справка на этом высоко ценилась бы.
Поклон
SQL Server не будет перестраивать индексы, которые недостаточно велики. Посмотрите на fragment_count (это одно из полей в представлении sys.dm_db_index_physical_stats), возможно, он довольно низкий для этих 27 индексов.