Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Speicherplatz ist eine wichtige Erwägung, wenn Sie Indizes erstellen, neu erstellen oder ablegen. Unzureichender Speicherplatz kann die Leistung beeinträchtigen oder sogar dazu führen, dass der Indexvorgang fehlschlägt. Dieses Thema enthält allgemeine Informationen, mit denen Sie den für DDL-Vorgänge (Index Data Definition Language) erforderlichen Speicherplatz ermitteln können.
Indexvorgänge ohne zusätzlichen Speicherplatz
Für die folgenden Indexvorgänge ist kein zusätzlicher Speicherplatz erforderlich:
ALTER INDEX REORGANIZE; jedoch wird Logdateispeicher benötigt.
DROP INDEX, wenn Sie einen nicht gruppierten Index löschen.
DROP INDEX, wenn Sie einen gruppierten Index offline entfernen, ohne die MOVE TO-Klausel anzugeben und keine nicht gruppierten Indizes existieren.
CREATE TABLE (PRIMARY KEY oder UNIQUE-Einschränkungen)
Indexvorgänge, für die zusätzlicher Speicherplatz erforderlich ist
Alle anderen Index-DDL-Vorgänge erfordern zusätzlichen temporären Speicherplatz, um während des Vorgangs zu verwenden, und dauerhafter Speicherplatz zum Speichern der neuen Indexstruktur oder -strukturen.
Beim Erstellen einer neuen Indexstruktur wird Speicherplatz sowohl für die alte Struktur (Quelle) als auch für die neue Struktur (Ziel) in den jeweiligen Dateien und Dateigruppen benötigt. Die Zuordnung der alten Struktur wird erst aufgehoben, nachdem die Indexerstellungstransaktion den Commitvorgang ausgeführt hat.
Die folgenden DDL-Indexvorgänge erstellen neue Indexstrukturen und benötigen zusätzlichen Speicherplatz:
INDEX ERSTELLEN
INDEX MIT DROP_EXISTING ERSTELLEN
ALTER INDEX REBUILD
ALTER TABLE ADD CONSTRAINT (PRIMÄRSCHLÜSSEL oder EINDEUTIG)
ALTER TABLE DROP CONSTRAINT (PRIMARY KEY oder UNIQUE), wenn die Einschränkung auf einem gruppierten Index basiert
LÖSCHEN SIE INDEX MOVE TO (Gilt nur für gruppierte Indizes.)
Temporärer Speicherplatz für die Sortierung
Neben dem für die Quell- und Zielstrukturen erforderlichen Speicherplatz ist temporärer Speicherplatz für die Sortierung erforderlich, es sei denn, der Abfrageoptimierer findet einen Ausführungsplan, der keine Sortierung erfordert.
Wenn die Sortierung erforderlich ist, erfolgt die Sortierung jeweils um einen neuen Index. Wenn Sie beispielsweise einen gruppierten Index und zugeordnete nicht gruppierte Indizes innerhalb einer einzelnen Anweisung neu erstellen, werden die Indizes nacheinander sortiert. Daher muss der zusätzliche temporäre Speicherplatz, der für die Sortierung erforderlich ist, nur so groß sein wie der größte Index im Vorgang. Dies ist fast immer der gruppierte Index.
Wenn die Option SORT_IN_TEMPDB auf EIN festgelegt ist, muss der größte Index in tempdb passen. Obwohl diese Option den temporären Speicherplatz erhöht, der zum Erstellen eines Indexes verwendet wird, kann die Zeit reduziert werden, die zum Erstellen eines Indexes erforderlich ist, wenn tempdb sich auf einer Reihe von Datenträgern befindet, die sich von der Benutzerdatenbank unterscheiden.
Wenn SORT_IN_TEMPDB auf OFF (Standard) festgelegt ist, wird jeder Index, einschließlich partitionierter Indizes, in seinem Zielspeicherplatz sortiert. und nur der Speicherplatz für die neuen Indexstrukturen ist erforderlich.
Ein Beispiel für die Berechnung des Speicherplatzes finden Sie unter Index-Speicherplatzbeispiel.
Temporärer Speicherplatz für Onlineindexvorgänge
Wenn Sie Indexvorgänge online ausführen, ist zusätzlicher temporärer Speicherplatz erforderlich.
Wenn ein gruppierter Index erstellt, neu erstellt oder online abgelegt wird, wird ein temporärer nicht gruppierter Index erstellt, um alte Lesezeichen neuen Lesezeichen zuzuordnen. Wenn die Option SORT_IN_TEMPDB auf EIN festgelegt ist, wird dieser temporäre Index in tempdb erstellt. Wenn SORT_IN_TEMPDB auf OFF festgelegt ist, wird dasselbe Dateigruppen- oder Partitionsschema wie der Zielindex verwendet. Der temporäre Zuordnungsindex enthält einen Datensatz für jede Zeile in der Tabelle, und sein Inhalt ist die Vereinigung der alten und neuen Textmarkenspalten, einschließlich eindeutiger Bezeichner und Datensatzbezeichner und einschließlich einer einzigen Kopie jeder Spalte, die in beiden Textmarken verwendet wird. Weitere Informationen zu Onlineindexvorgängen finden Sie unter Perform Index Operations Online.
Hinweis
Die Option "SORT_IN_TEMPDB" kann nicht für "DROP INDEX"-Anweisungen festgelegt werden. Der temporäre Zuordnungsindex wird immer in derselben Dateigruppe oder im gleichen Partitionsschema wie der Zielindex erstellt.
Online-Indexvorgänge verwenden Zeilenversionierung, um den Indexvorgang von den Auswirkungen von Änderungen an Daten zu isolieren, die von anderen Transaktionen vorgenommen wurden. Dadurch wird die Anforderung von Freigabesperren für Zeilen vermieden, die gelesen wurden. Gleichzeitige Benutzeraktualisierungs- und Löschvorgänge während Onlineindexvorgängen erfordern Speicherplatz für Versionsdatensätze in tempdb. Weitere Informationen finden Sie unter Perform Index Operations Online .
Verwandte Aufgaben
Transaktionsprotokollspeicherplatz für Indexvorgänge
Schätzen der Größe einer Tabelle
Schätzen der Größe eines gruppierten Indexes
Schätzen der Größe eines nicht gruppierten Indexes
Schätzen der Größe eines Heaps