Коефіцієнт заповнення грає лише тоді, коли індекс створюється або відновлюється. Це кількість споживання для індексу сторінок рівня листків, які заповнюються під час цих операцій. ( Дивіться примітку нижче для більш роз'яснень на уражених рівнях сторінок )
Коли для даних ( INSERT
, UPDATE
та / або DELETE
) є команда DML , це станеться з відповідними індексами. Іншими словами, якщо у вас на 20% заповнена сторінка, і ви вставляєте дані на цю сторінку, вона буде містити більше 20% даних (скажімо, 35% лише для прикладу). Зробіть ще одну вставку, тепер сторінка заповнена на 64%. Перебудуйте індекс, і сторінки на рівні аркушів тепер відносно будуть містити відсоток простору, який ви вказали (або неявно за замовчуванням для сервера).
( Зверніть увагу , коли ви не вказуєте PAD_INDEX
бути ON
, коефіцієнт заповнення застосовується лише до сторінок рівня аркуша. Але коли ви встановите PAD_INDEX = ON
, коефіцієнт заповнення враховуватиметься для сторінок проміжного рівня індексу. За замовчуваннямOFF
)
Причина коригування коефіцієнта заповнення (замість використання значень 100/0 за замовчуванням) полягає в тому, що ви мінімізуєте розбиття сторінок під час вставки чи оновлення даних. Але майте на увазі, нічого не безкоштовно. Чим менший коефіцієнт заповнення, тим більше місця займає звичайно. Якщо ви збережете 80% вільного простору сторінки для своїх індексів, вони будуть споживати відносно більшу кількість дискового простору, що може призвести до більшого читання.
Наскільки я розумію, коли дані будуть вставлені, на сторінках буде приблизно 20% даних. Коли дані оновлюються, однак вони розширяться до більш ніж 20% індексу, доповнивши їх заповненням та генеруючи розділення сторінки, правда?
Коли дані будуть вставлені, вони вставлятимуться у відповідні індекси на відповідній сторінці. Це могло б і, швидше за все, спричинити, що споживання сторінки буде перевищувати коефіцієнт заповнення.
Розкол сторінки відбудеться, коли нові дані будуть додані на повну індексну сторінку. Потім SQL Server розділить сторінку і приблизно розмістить половину даних з повної сторінки на новій. Знову ж таки, коефіцієнт заповнення тут не грає.
Законною причиною зниження коефіцієнта заповнення було б мінімізація розбиття сторінок, таким чином, мінімізація фрагментації сторінки індексу.