Настройка Fill Factor для уменьшения фрагментации - PullRequest
3 голосов
/ 16 февраля 2010

У меня есть некластеризованный индекс, который содержит ~ 1000 страниц, 95% фрагментации и FillFactor со значением 0

Я перестроил индекс в воскресенье. Через неделю у индекса снова 95% (или около того) фрагментации. Это признак того, что мне нужно изменить FillFactor, чтобы сказать 80-90%?

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

Спасибо.

1 Ответ

13 голосов
/ 16 февраля 2010

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

Определение оптимальных коэффициентов заполнения - это в значительной степени процесс проб и ошибок, и скорее искусство, чем наука. От Советы по восстановлению индексов Брэда МакГи :

Так, каков идеальный коэффициент заполнения? Это зависит от отношения чтения к пишет, что ваше приложение делает ваши таблицы SQL Server. Как правило большой палец, следуйте этим рекомендациям:

* Low Update Tables (100-1 read to write ratio): 100% fill factor
* High Update Tables (where writes exceed reads): 50%-70% fill factor
* Everything In-Between: 80%-90% fill factor.
...