Индекс фрагментации быстро растет даже при использовании fillfactor

Я использую SQL Server 2012, за несколько дней я заметил, что фрагментация некоторых индексов очень быстро растет. Я прочитал другую статью и применил коэффициент заполнения.

Сначала я изменил коэффициент заполнения на 95 и перестроил, после одного дня фрагментация составила около 50%. Поэтому я уменьшаю коэффициент заполнения до 90, а затем до 80, но после одного дня фрагментация снова достигает 50%.

Мне нужна помощь, чтобы выяснить причину растущей фрагментации и найти решение для ее устранения.

К вашему сведению, я применяю коэффициент заполнения на уровне индекса, только 4-5 индексов имеют эту проблему. Я применил коэффициент заполнения к другим индексам, а также они работают нормально.

Заранее спасибо.

1 ответ

Решение

Есть много вещей, которые вызывают фрагментацию индекса.. некоторые из них ниже

1. Операции вставки и обновления, вызывающие разбиение страницы
2. Удалить операции
3. Первоначальное размещение страниц из смешанных экстентов.
4. Большой размер строки

SQL Server использует fillfactor только при создании, перестройке или реорганизации индекса, поэтому даже если вы укажете коэффициент заполнения, равный 70, вы все равно можете получить разбиения страницы... и дальнейшая фрагментация индекса будет "ожидаемой" и "неизбежной" характеристика любой среды OLTP.

Таким образом, при настройке коэффициента заполнения сервер sql оставляет некоторое пространство при перестроении индекса, и это помогает только в первом сценарии, и это также зависит от вашей рабочей нагрузки.

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

Кроме того, вы можете отслеживать Pagesplits/delete, которые являются одними из причин фрагментации, используя счетчики Perfmon / расширенные события и lso, используя журнал транзакций.

https://dba.stackexchange.com/questions/115943/index-fragmentation-am-i-interpreting-the-results-correctly

https://www.brentozar.com/archive/2012/08/sql-server-index-fragmentation/

Рекомендации:
Примечания - Фрагментация, типы и решения индекса SQL Server

Другие вопросы по тегам