Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dotyczy:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Baza danych SQL w usłudze Microsoft Fabric
Miejsce na dysku jest ważnym zagadnieniem podczas tworzenia, ponownego kompilowania lub upuszczania indeksów. Niewystarczająca ilość miejsca na dysku może obniżyć wydajność, a nawet spowodować niepowodzenie operacji indeksu. Ten artykuł zawiera ogólne informacje, które mogą ułatwić określenie ilości miejsca na dysku wymaganego dla operacji języka definicji danych indeksu (DDL).
Operacje indeksowania, które nie wymagają dodatkowego miejsca na dysku
Następujące operacje indeksowania nie wymagają dodatkowego miejsca na dysku:
ALTER INDEX REORGANIZE; jednak wymagana jest przestrzeń na logi.DROP INDEXgdy usuwasz indeks nieklastrowany.DROP INDEXw przypadku usuwania indeksu klastrowanego w trybie offline bez określaniaMOVE TOklauzuli i indeksy nieklastrowane nie istnieją.CREATE TABLE(PRIMARY KEYlubUNIQUEograniczenia)
Operacje indeksowania wymagające dodatkowego miejsca na dysku
Wszystkie inne operacje DDL indeksu wymagają dodatkowego tymczasowego miejsca na dysku do użycia podczas operacji oraz stałego miejsca na dysku do przechowywania nowej struktury indeksu lub struktur.
Po utworzeniu nowej struktury indeksu miejsce na dysku dla starych (źródłowych) i nowych (docelowych) struktur jest wymagane w odpowiednich plikach i grupach plików. Stara struktura nie zostanie zwolniona z przydziału aż do momentu zatwierdzenia transakcji tworzenia indeksu.
Następujące operacje DDL indeksu tworzą nowe struktury indeksów i wymagają dodatkowego miejsca na dysku:
CREATE INDEXCREATE INDEX WITH DROP_EXISTINGALTER INDEX REBUILD-
ALTER TABLE ADD CONSTRAINT(PRIMARY KEYlubUNIQUE) -
ALTER TABLE DROP CONSTRAINT(PRIMARY KEYlubUNIQUE) gdy ograniczenie jest oparte na indeksie klastrowanym -
DROP INDEX MOVE TO(Dotyczy tylko indeksów klastrowanych).
Tymczasowe miejsce na dysku na potrzeby sortowania
Oprócz miejsca na dysku wymaganego dla struktur źródłowych i docelowych wymagane jest tymczasowe miejsce na dysku do sortowania, chyba że optymalizator zapytań znajdzie plan wykonywania, który nie wymaga sortowania.
Jeśli sortowanie jest wymagane, sortowanie następuje po jednym nowym indeksie na raz. Na przykład podczas ponownego kompilowania indeksu klastrowanego i skojarzonych indeksów nieklastrowanych w ramach jednej instrukcji indeksy są sortowane po drugiej. W związku z tym dodatkowe tymczasowe miejsce na dysku wymagane do sortowania musi być tak duże, jak największy indeks operacji. Jest to prawie zawsze indeks klastrowany.
Jeśli opcja SORT_IN_TEMPDB jest ustawiona na ON, największy indeks musi mieścić się w tempdb. Mimo że ta opcja zwiększa ilość tymczasowego miejsca na dysku używanego do utworzenia indeksu, może to skrócić czas wymagany do utworzenia indeksu, gdy tempdb znajduje się na zestawie dysków innych niż baza danych użytkownika.
Jeśli SORT_IN_TEMPDB jest ustawione na OFF (domyślnie), każdy indeks, w tym indeksy partycjonowane, są sortowane w ich docelowej przestrzeni dyskowej, i tylko przestrzeń dyskowa dla nowych struktur indeksów jest wymagana.
Przykład obliczania miejsca na dysku można znaleźć w temacie Indeksowanie miejsca na dysku.
Tymczasowe miejsce na dysku dla operacji indeksowania online
Podczas wykonywania operacji indeksowania w trybie online wymagane jest dodatkowe tymczasowe miejsce na dysku.
Jeśli indeks klastrowany jest tworzony, przebudowany lub porzucony w trybie online, tworzony jest tymczasowy indeks nieklastrowany w celu mapowania starych zakładek na nowe zakładki. Jeśli opcja SORT_IN_TEMPDB jest ustawiona na ON, ten tymczasowy indeks zostanie utworzony w tempdb. Jeśli SORT_IN_TEMPDB ustawiono wartość OFF, używany jest ten sam schemat grupy plików lub partycji co indeks docelowy. Indeks tymczasowego mapowania zawiera jeden rekord dla każdego wiersza w tabeli, a jego zawartość stanowi połączenie starych i nowych kolumn zakładek, w tym unikalnych identyfikatorów i identyfikatorów rekordów. Zawiera tylko jedną kopię kolumny używanej w obu zakładkach. Aby uzyskać więcej informacji na temat operacji indeksowania online, zobacz Wykonywanie operacji indeksowania w trybie online.
Uwaga / Notatka
Nie można ustawić opcji SORT_IN_TEMPDB dla instrukcji DROP INDEX. Indeks mapowania tymczasowego jest zawsze tworzony w tej samej grupie plików lub schemacie partycji co indeks docelowy.
Operacje indeksowania online używają wersjonowania wierszy, aby odizolować operację indeksu od skutków modyfikacji wprowadzanych przez inne transakcje. Pozwala to uniknąć konieczności żądania blokad współdzielenia na wierszach, które zostały odczytane. Współbieżne operacje aktualizacji i usuwania użytkowników podczas operacji indeksowania online wymagają miejsca na rekordy wersji w programie tempdb. Aby uzyskać więcej informacji, zobacz Wykonywanie operacji indeksowania w trybie online .
Powiązane zadania
- Przykład miejsca na dysku indeksu
- Miejsce na dysku dziennika transakcji dla operacji indeksowania
- Szacowanie rozmiaru tabeli
- Szacowanie rozmiaru indeksu klastrowanego
- Szacowanie rozmiaru indeksu nieklastrowanego
- Szacowanie rozmiaru sterty