Udostępnij za pośrednictwem


Index Disk Space Example

Za każdym razem, gdy indeks jest tworzony, przebudowany lub opuszczone miejsca na dysku dla starego (urządzenie źródłowe) i nowe struktury (miejsce docelowe) jest wymagany w ich odpowiednie pliki i filegroups.Stare struktura nie jest dealokowane aż zatwierdzeniu transakcji tworzenia indeksu.Również mogą być potrzebne dodatkowe tymczasowego miejsca na dysku do operacji sortowania.Aby uzyskać więcej informacji zobaczDisk Space Requirements for Index DDL Operations.

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

Załóżmy, przed utworzeniem indeks klastrowany są spełnione następujące warunki:

  • W istniejącej tabela (sterty) zawiera 1 miliona wierszy.Każdy wiersz jest 200 bajtów.

  • Indeks nieklastrowany A zawiera 1 miliona wierszy.Każdy wiersz jest 50 bajtów.

  • Indeks nieklastrowany B zawiera 1 miliona wierszy.Każdy wiersz jest 80 bajtów.

  • Opcja jest ustawiona na 2 MB pamięci należy utworzyć indeks.

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

    Uwaga

    Z powodu Tworzenie indeks klastrowany, dwa ponownego zbudowania indeksów nie klastrowanych musi wymagają przebudowania zastąpić wskaźnik wiersza z nowym kluczem indeks klastrowany.

Obliczenia obszar dysku dla operacji w trybie offline indeksu

W poniższych krokach tymczasowego miejsca na dysku do użycia podczas działania indeksu i miejsca na dysku stałym do przechowywania nowe indeksy są obliczane.Obliczenia wyświetlane są przybliżone: wyniki są zaokrąglane w górę i należy wziąć pod uwagę rozmiar indeksu na poziomie poziom liścia. Tyldy (~) służy do wskazywania przybliżone obliczeń.

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

    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 długa, łącznie z 24 bajty uniqueifier. Wskaźnik wiersza (długości 8 bajtów) w obu ponownego zbudowania indeksów nie klastrowanych zostanie zastąpione przez ten klucz klastrowany.

    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łkowita ilość miejsca na dysku wymagane do obsługi struktur źródłową i docelową na czas trwania operacji indeksu jest 816 MB (363 + 453).Przestrzeń właśnie przydzieliła do struktury urządzenie źródłowe będzie się dealokowane po operacji indeksu jest zobowiązana.

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

    Wymagania dotyczące ilości wolnego miejsca na dysku są wyświetlane do sortowania 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 na dysku do przechowywania największej indeksu (1 milion * 200 bajtów ~ 200 MB).Współczynnik wypełnienia nie będzie uwzględniany w operacji sortowania.

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

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

    2. Gdy jest SORT_IN_TEMPDB zestaw do OFF (ustawienie domyślne), 250 MB miejsca na dysku, które już 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 miejsca na dysku tymczasowym SORT_IN_TEMPDB zestaw OFF = 2 MB.

Za pomocą tempdb, łącznie z 1018 MB (816 + 202) potrzebny do utworzenia indeksów klastrowanych i nieklastrowany.Chociaż przy użyciu tempdb zwiększa się ilość miejsca na dysku tymczasowym, używane do tworzenia indeksu, może to zmniejszyć czas wymagany do tworzenia indeksu podczas tempdb znajduje się na inny zestaw dysków niż baza danych użytkownika.Aby uzyskać więcej informacji o korzystaniu z tempdb, see tempdb and Index Creation.

Bez użycia tempdb, łącznie z 818 MB (816 + 2) może być potrzebne do utworzenia indeksów klastrowanych i nieklastrowany.

Obliczenia obszar dysku dla operacji indeks klastrowanych online

Podczas tworzenia, usunąć lub ponownie utwórz indeks klastrowany online dodatkowego miejsca na dysku jest wymagany do tworzenia i utrzymywania indeksu tymczasowe mapowania.Indeks ten tymczasowy mapowania zawiera pojedynczy rekord dla każdego wiersza w tabela, a jego zawartość jest sumę kolumny stare i nowe zakładki.

Aby obliczyć ilość miejsca na dysku wymagane dla operacji indeks klastrowany w trybie online, wykonaj kroki, podana dla operacji indeksu w trybie offline i dodania tych wyniki do wyniki następny krok.

  • Określ miejsce dla indeksów tymczasowych mapowania.

    W tym przykładzie starą zakładkę jest wiersz identyfikator (RID) sterty (8 bajtów) i nowej zakładki jest kluczem klastrowania (24 bajty łącznie z element nadający unikatowość).Brak zachodzących na siebie kolumn, między starymi i nowymi zakładki.

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

    Jeżeli SORT_IN_TEMPDB jest wyłączona, lub do tego miejsca na dysku, należy dodać do wymaganego miejsca w lokalizacji miejsce docelowe tempdb SORT_IN_TEMPDB jest ustawiona na ON.

Aby uzyskać więcej informacji na temat indeksu tymczasowe mapowania zobacz Disk Space Requirements for Index DDL Operations.

Podsumowanie obszar 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 o SORT_IN_TEMPDB = ON

Całkowite miejsce podczas operacji: 1 018 MB

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

  • tempdb: 202 MB *

  • Nowe indeksy: 453 MB

Całkowite miejsce wymagane po operacji: 453 MB

Operacja offline indeksu o SORT_IN_TEMPDB = OFF

Całkowite miejsce podczas operacji: 816 MB

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

  • Nowe indeksy: 453 MB

Całkowite miejsce wymagane po operacji: 453 MB

Operacja online indeksu o SORT_IN_TEMPDB = ON

Całkowite miejsce podczas operacji: 1 058 MB

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

  • tempdb (zawiera mapowania indeksu): 242 MB *

  • Nowe indeksy: 453 MB

Całkowite miejsce wymagane po operacji: 453 MB

Operacja online indeksu o SORT_IN_TEMPDB = OFF

Całkowite miejsce podczas operacji: 856 MB

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

  • Mapowanie tymczasowy indeks: 40 MB *

  • Nowe indeksy: 453 MB

Całkowite miejsce wymagane po operacji: 453 MB

* W tym miejscu jest dealokowane po operacji indeksu jest zatwierdzona.

W tym przykładzie nie bierze pod uwagę wszystkie dodatkowe tymczasowego miejsca na dysku wymagane w tempdb dla wersja rekordów utworzonych przez użytkownika jednocześnie aktualizować i usuwać operacji.Aby uzyskać więcej informacji zobaczUnderstanding Row Versioning-Based Isolation Levels.