Чому коефіцієнт заповнення в SQL Server за замовчуванням дорівнює 0 (100%)?


9

Я розумію коефіцієнт заповнення, сторінки та структуру індексу, і я розумію, чому 100% коефіцієнт заповнення є рідкісною найкращою практикою. То чому він за замовчуванням дорівнює 0 (або 100%)? Чому б не 90 чи 95?

Щось мені не вистачає?

Відповіді:


8

Просто викинувши тут кілька пропозицій щодо того, чому Microsoft зробить це:

  1. Вони орієнтувались за замовчуванням на найкращу ефективність роботи OLAP (менше читання сторінок із коефіцієнтом заповнення 0/100)
  2. Вони припускають, що INSERTдані, що видаються, найімовірніше, будуть в кінці таблиці, роблячи додаткове місце на сторінці марним
  3. Вони припускають, що, як правило, UPDATEдані d не будуть подовжувати дані рядків дуже часто, викликаючи розбиття сторінки

Тут просто здогадки. Єдині люди, які дійсно можуть точно відповісти на це питання, - це сама команда SQL Server.


5
Правильно, ці здаються розумними теоріями, і набагато більше шансів бути типовими для клієнта, ніж вибирати якийсь довільний коефіцієнт заповнення, коли у багатьох випадках ви гарантовано назавжди витрачаєте місце на сторінці.
Аарон Бертран

Я не можу повірити, що я отримав відповідь, з яким я можу погодитися. Я не очікував, що існує обґрунтована відповідь, але ваші пункти №2 та №3 дуже розумні. Дякую!
NTDLS

@NTDLS не проблема, рада допомогти.
Томас Стрінгер
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.