| Termin | Definicja |
|---|---|
| page_split | page_split to zdarzenie podziału strony indeksu, którego duża częstotliwość świadczy o fragmentacji i kosztownych zapisach. Na czym polega page_split w indeksie
Podział strony nie jest sam w sobie błędem. Jest normalnym mechanizmem obsługi zapisów do indeksu, szczególnie gdy dane są wstawiane w kolejności, która nie odpowiada kolejności klucza indeksu. Problem pojawia się wtedy, gdy operacja występuje często. Podział wymaga dodatkowych odczytów i zapisów, może generować blokowanie innych transakcji, zwiększa ilość pracy dziennika transakcji oraz może prowadzić do powstawania wolnego miejsca na stronach. Częste zdarzenia Dlaczego kolejność klucza wpływa na liczbę podziałówNajłatwiejszym przypadkiem dla indeksu jest dopisywanie nowych kluczy na końcu struktury. Jeżeli kolumna klucza rośnie monotonicznie, nowe wpisy zwykle trafiają do ostatniej strony indeksu. W takiej sytuacji podział strony może być rzadszy, ponieważ silnik nie musi wstawiać wartości pomiędzy już istniejące wpisy. Inaczej działa indeks, do którego trafiają klucze o rozproszonych wartościach. Wstawienie rekordu do środka uporządkowanej strony może wymagać przesunięcia wpisów i utworzenia nowej strony. Znaczenie ma także rozmiar wpisu indeksowego. Indeks zawierający szerokie kolumny, kolumny o zmiennej długości albo dużą liczbę kolumn uwzględnianych w strukturze zajmuje więcej miejsca na każdej stronie. Mniejsza liczba wpisów mieszczących się na stronie zwiększa prawdopodobieństwo, że kolejny zapis nie znajdzie wystarczającej ilości wolnego miejsca. Dodatkową przyczyną może być aktualizacja wartości klucza indeksu. Jeżeli zmiana powoduje przeniesienie rekordu w inne miejsce uporządkowanej struktury, SQL Server może wykonać operacje podobne do wstawienia i usunięcia, a ich skutkiem również może być podział strony. Jak interpretować page_split podczas analizy SQL ServerSam licznik lub pojedyncze zdarzenie W SQL Server do oceny stanu indeksów można wykorzystać między innymi widoki dynamicznego zarządzania, takie jak Ograniczanie kosztownych podziałów stronOgraniczanie liczby podziałów stron w SQL Server zaczyna się od identyfikacji indeksów, dla których zjawisko jest częste i kosztowne. Jednym z mechanizmów dostępnych przy tworzeniu lub przebudowie indeksu jest parametr Dobór klucza indeksu powinien uwzględniać rzeczywisty wzorzec zapisów, a nie tylko unikalność kolumny. W niektórych tabelach korzystne może być użycie klucza o przewidywalnej kolejności, natomiast w innych konieczne jest zachowanie klucza wynikającego z wymagań zapytań. Przebudowa indeksu może uporządkować strukturę i odzyskać wolne miejsce, lecz nie usuwa przyczyny przyszłych podziałów, jeżeli aplikacja nadal wykonuje rozproszone wstawienia lub aktualizacje klucza. W przypadku problemów z wydajnością potrzebna jest diagnostyka konkretnej bazy, tabeli, indeksu i obciążenia, a następnie test zmiany na danych oraz zapytaniach odpowiadających rzeczywistemu użyciu. |