Dlaczego współczynnik wypełnienia w SQL Server domyślnie wynosi 0 (100%)?

9

Rozumiem współczynnik wypełnienia, strony i strukturę indeksu i dlatego rozumiem, dlaczego współczynnik wypełnienia 100% jest rzadką najlepszą praktyką. Dlaczego więc domyślnie wynosi 0 (lub 100%)? Dlaczego nie 90 lub 95?

Czy czegoś brakuje?

NTDLS
źródło

Odpowiedzi:

8

Przedstawiam tutaj kilka sugestii, dlaczego Microsoft miałby to zrobić:

  1. Ustawili domyślnie, aby uzyskać najlepszą możliwą wydajność OLAP (mniej odczytów stron przy współczynniku wypełnienia 0/100)
  2. Zakładają, że INSERTdane ed najprawdopodobniej znajdą się na końcu tabeli, dzięki czemu dodatkowe miejsce na stronie będzie bezużyteczne
  3. Zakładają, że zwykle UPDATEd dane nie wydłużają często danych wierszy, powodując podział strony

To tylko zgadywanie tutaj. Jedynymi osobami, które naprawdę potrafią dokładnie odpowiedzieć na to pytanie, jest sam zespół SQL Server.

Thomas Stringer
źródło
5
Racja, wydają się to sensowne teorie i są znacznie bardziej odpowiednie dla typowego klienta niż wybranie jakiegoś arbitralnego współczynnika wypełnienia, w którym w wielu przypadkach masz gwarancję trwałego marnowania miejsca na stronie.
Aaron Bertrand
Nie mogę uwierzyć, że otrzymałem odpowiedź, z którą mogę się zgodzić. Nie spodziewałem się, że istnieje rozsądna odpowiedź, ale twoje punkty 2 i 3 są bardzo rozsądne. Dzięki!
NTDLS,
@NTDLS nie ma problemu, chętnie pomogę.
Thomas Stringer