Udostępnij za pośrednictwem


Przykład miejsca na dysku indeksu

Zawsze tworzone, przebudowany lub porzucone miejsca na dysku dla starego (źródło) i nowy indeks struktur (miejsce docelowe) wymagane jest ich odpowiednie pliki i aplikacjami.Nie dealokowaniu starej struktury, dopóki zatwierdzeniu transakcji tworzenia indeksu.Również mogą być potrzebne dodatkowe tymczasowego miejsca na dysku do operacji sortowania.Aby uzyskać więcej informacji, zobacz Wymagania dotyczące miejsca na dysku dla operacji DDL indeksu.

W tym przykładzie są określone wymagania dotyczące miejsca na dysku, aby utworzyć indeks klastrowany.

Przyjmijmy, przed utworzeniem indeks klastrowany są spełnione następujące warunki:

  • Istniejącej tabela (sterty) zawiera około 1 miliona wierszy.Każdy wiersz jest 200 bajtów.

  • Indeks nieklastrowany a zawiera około 1 miliona wierszy.Każdy wiersz jest 50 bajtów.

  • Indeks nieklastrowany b zawiera około 1 miliona wierszy.Każdy wiersz jest 80 bajtów.

  • Utworzyć indeks pamięci jest opcja zestaw do 2 MB.

  • Wartość współczynnik wypełnienia 80 jest używana dla wszystkich istniejących i nowych indeksów.Oznacza to, że strony są 80 procent.

    Ostrzeżenie

    Zbudowane w wyniku tworzenia indeks klastrowany, dwa indeksy nieklastrowany musi ponownie zastąpić wskaźnik wiersza nowy indeks klastrowany klucz.

Obliczenia miejsca na dysku dla operacji indeks w trybie Offline

W poniższych krokach tymczasowego miejsca na dysku do użycia podczas operacji indeksu i stałe miejsca do przechowywania nowe indeksy są obliczane.Obliczenia wyświetlane są przybliżone: wyniki są zaokrąglane w górę i wziąć pod uwagę rozmiar indeksu poziom liścia poziom.Tyldy (~) jest używany do wskazania obliczenia przybliżonego.

  1. Należy określić rozmiar istniejących struktur (źródło).

    Stosu: 1 milion * 200 bajtów ~ 200 MB

    Indeks nieklastrowany A: 1 milion * 50 bajtów / 80% ~ 63 MB

    Indeks nieklastrowany B: 1 milion * 80 bajtów / 80% ~ 100 MB

    Całkowity rozmiar istniejących struktur: 363 MB

  2. Należy określić rozmiar nowych struktur indeksu (miejsce docelowe).Zakładać, że nowy klucz klastrowany jest 24 bajty łącznie z uniqueifier.Ten klucz klastrowany zostanie zastąpiona wskaźnik wiersza (8 bajtów) w obu zbudowania indeksów nie klastrowanych.

    Indeks klastrowany: 1 milion * 200 bajtów / 80% ~ 250 MB

    Indeks nieklastrowany A: 1 milion * (50 — 8 + 24) bajtów / 80% ~ 83 MB

    Indeks nieklastrowany B: 1 milion * (80 — 8 + 24) bajtów / 80% ~ 120 MB

    Całkowity rozmiar nowych struktur: 453 MB

    Całkowitego miejsca na dysku, wymagane do obsługi zarówno źródło i miejsce docelowe struktur czas trwania operacji indeksu jest 816 MB (363 + 453).Miejsca przydzielonego obecnie struktur źródło będzie przydzielenia po operacji indeksu jest zaangażowana.

  3. Określ dodatkowe tymczasowego miejsca na dysku do sortowania.

    Pokazane są wymagania dotyczące miejsca na sortowanie w tempdb (z SORT_IN_TEMPDB zestaw on) i sortowania w lokalizacji miejsce docelowe (z SORT_IN_TEMPDB zestaw do OFF).

    1. Gdy jest SORT_IN_TEMPDB zestaw on, tempdb musi mieć wystarczającą ilość miejsca do przechowywania największej indeksu (1 milion * 200 bajtów ~ 200 MB).Współczynnik wypełnienia nie są uwzględniane w operacji sortowania.

      Dodatkowe miejsce na dysku (w tempdb lokalizacji) równą pamięci opcja utworzenia indeksu wartość = 2 MB.

      Całkowity rozmiar tymczasowego miejsca na dysku z SORT_IN_TEMPDB zestaw on ~ 202 MB.

    2. Gdy jest SORT_IN_TEMPDB zestaw do wyłączone (domyślnie) 250 MB miejsca na dysku, które już jest uważany za nowy indeks w kroku 2 jest używane do sortowania.

      Dodatkowe miejsce na dysku (w lokalizacji miejsce docelowe) równą pamięci opcja utworzenia indeksu wartość = 2 MB.

      Całkowity rozmiar tymczasowego miejsca na dysku z SORT_IN_TEMPDB zestaw OFF = 2 MB.

Za pomocą tempdb, suma 1018 MB (816 + 202) potrzebny do tworzenia indeksów klastrowanych i nieklastrowany.Chociaż użycie tempdb zwiększa ilość tymczasowego miejsca na dysku używane do tworzenia indeksu, może zmniejszyć czas wymagany do tworzenia indeksu po tempdb na inny zestaw dysków niż baza danych użytkownika.Aby uzyskać więcej informacji o korzystaniu z tempdb, zobacz tempdb i tworzenie indeksu.

Bez korzystania z tempdb, suma 818 MB (816 + 2) potrzebny do tworzenia indeksów klastrowanych i nieklastrowany.

Obliczenia miejsca na dysku dla Online operacji indeksu klastrowanego

Podczas tworzenia, drop lub odbudowanie indeks klastrowany w trybie online dodatkowe miejsce na dysku jest wymagany do tworzenia i utrzymywania indeksu tymczasowych mapowania.Indeks ten tymczasowy mapowania zawiera pojedynczy rekord dla każdego wiersza w tabela i jego zawartość są Unii kolumny stara i Nowa zakładka.

Aby obliczyć miejsca wymagana do operacji indeks klastrowany w trybie online, wykonaj kroki przedstawione dla operacji indeks w trybie offline i dodać tych wyniki z wynikami następującego kroku.

  • Określ miejsce indeksu tymczasowych mapowania.

    W tym przykładzie starej zakładki jest wiersz stosu (8 bajtów) identyfikator (RID) i jest nowa zakładka klastrowanie klucz (24 bajty łącznie z element nadający unikatowość).Brak nakładających się kolumn, między stare i nowe zakładki.

    Rozmiar indeksu tymczasowe mapowanie = 1 milion * (8 bajtów + 24 bajty) / 80% ~ 40 MB.

    To miejsce na dysku musi być dodana do wymaganego miejsca w lokalizacji miejsce docelowe, jeśli jest SORT_IN_TEMPDB zestaw OFF lub do tempdb Jeśli jest SORT_IN_TEMPDB zestaw on.

Więcej informacji o indeksie mapowanie tymczasowe Zobacz Wymagania dotyczące miejsca na dysku dla operacji DDL indeksu.

Podsumowanie miejsca na dysku

Poniższa tabela zawiera podsumowanie wyniki obliczeń miejsca na dysku.

Działanie indeksu

Wymagania dotyczące miejsca na dysku dla lokalizacji następujących struktur:

Operacja offline indeksu z SORT_IN_TEMPDB = ON

Całkowita ilość miejsca podczas operacji: 1 018 MB

  • Istniejącą tabela i indeksów: 363 MB *

  • tempdb: 202 MB *

  • Nowe indeksy: 453 MB

Całkowita ilość miejsca wymaganego po operacji: 453 MB

Operacja offline indeksu z SORT_IN_TEMPDB = OFF

Całkowita ilość miejsca podczas operacji: 816 MB

  • Istniejącą tabela i indeksów: 363 MB *

  • Nowe indeksy: 453 MB

Całkowita ilość miejsca wymaganego po operacji: 453 MB

Działanie indeksu online z SORT_IN_TEMPDB = ON

Całkowita ilość miejsca podczas operacji: 1 058 MB

  • Istniejącą tabela i indeksów: 363 MB *

  • tempdb (zawiera mapowanie indeksu): 242 MB *

  • Nowe indeksy: 453 MB

Całkowita ilość miejsca wymaganego po operacji: 453 MB

Działanie indeksu online z SORT_IN_TEMPDB = OFF

Całkowita ilość miejsca podczas operacji: 856 MB

  • Istniejącą tabela i indeksów: 363 MB *

  • Mapowanie tymczasowy indeks: 40 MB *

  • Nowe indeksy: 453 MB

Całkowita ilość miejsca wymaganego po operacji: 453 MB

* To miejsce dealokowaniu po operacji indeksu jest zaangażowana.

W tym przykładzie nie rozpatruje wszelkie dodatkowe tymczasowego miejsca na dysku wymaganego w tempdb wersja rekordów utworzonych przez użytkowników współbieżnych aktualizacji i usunąć operacje.Aby uzyskać więcej informacji, zobacz Opis wiersza na podstawie wersji poziomów izolacji.