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.
Wenn ein Index erstellt, neu erstellt oder abgelegt wird, ist Festplattenspeicherplatz für die alten (Quell-) und neuen (Ziel)-Strukturen in den entsprechenden Dateien und Dateigruppen erforderlich. Die Zuordnung der alten Struktur wird erst aufgehoben, nachdem die Indexerstellungstransaktion den Commitvorgang ausgeführt hat. Es kann auch zusätzlicher temporärer Speicherplatz für Sortiervorgänge erforderlich sein. Weitere Informationen finden Sie unter "Speicherplatzanforderungen für DDL-Indexvorgänge".
In diesem Beispiel werden speicherplatzanforderungen zum Erstellen eines gruppierten Indexes bestimmt.
Gehen Sie davon aus, dass die folgenden Bedingungen erfüllt sind, bevor Sie den gruppierten Index erstellen:
Die vorhandene Tabelle (Heap) enthält 1 Millionen Zeilen. Jede Zeile ist 200 Bytes lang.
Nicht gruppierter Index A enthält 1 Millionen Zeilen. Jede Zeile ist 50 Byte lang.
Nicht gruppierter Index B enthält 1 Millionen Zeilen. Jede Zeile ist 80 Byte lang.
Die Indexerstellungsspeicheroption ist auf 2 MB festgelegt.
Für alle vorhandenen und neuen Indizes wird ein Füllfaktorwert von 80 verwendet. Dies bedeutet, dass die Seiten 80 Prozent voll sind.
Hinweis
Durch das Erstellen eines gruppierten Indexes müssen die beiden nicht gruppierten Indizes neu erstellt werden, um den Zeilenindikator durch den neuen gruppierten Indexschlüssel zu ersetzen.
Festplattenspeicherberechnungen für einen Offlineindexvorgang
In den folgenden Schritten werden sowohl temporärer Speicherplatz, der während des Indexvorgangs verwendet werden soll, als auch dauerhafter Speicherplatz zum Speichern der neuen Indizes berechnet. Die dargestellten Berechnungen sind ungefähr; Die Ergebnisse werden aufgerundet und berücksichtigen nur die Größe der Indexblattebene. Die Tilde (~) wird verwendet, um ungefähre Berechnungen anzugeben.
Bestimmen Sie die Größe der Quellstrukturen.
Heap: 1 million * 200 bytes ~ 200 MB
Nicht gruppierter Index A: 1 Million * 50 Bytes / 80% ~ 63 MB
Nicht gruppierter Index B: 1 Million * 80 Bytes / 80% ~ 100 MB
Gesamtgröße vorhandener Strukturen: 363 MB
Bestimmen Sie die Größe der Zielindexstrukturen. Gehen Sie davon aus, dass der neue gruppierte Schlüssel 24 Byte lang ist, einschließlich eines Eindeutigkeitsindikators. Der Zeilenindikator (8 Byte lang) in beiden nicht gruppierten Indizes wird durch diesen gruppierten Schlüssel ersetzt.
Gruppierter Index: 1 Million * 200 Bytes / 80% ~ 250 MB
Nicht gruppierter Index A: 1 Million * (50 - 8 + 24) Bytes / 80% ~ 83 MB
Nicht gruppierter Index B: 1 Million * (80 - 8 + 24) Bytes / 80% ~ 120 MB
Gesamtgröße neuer Strukturen: 453 MB
Der gesamt erforderliche Speicherplatz für die Unterstützung der Quell- und Zielstrukturen für die Dauer des Indexvorgangs beträgt 816 MB (363 + 453). Der zurzeit den Quellstrukturen zugeordnete Speicherplatz wird nach der Bestätigung des Indexvorgangs freigegeben.
Ermitteln Sie zusätzlichen temporären Speicherplatz für die Sortierung.
Speicheranforderungen werden für die Sortierung in tempdb (mit SORT_IN_TEMPDB auf EIN festgelegt) und für die Sortierung am Zielort (mit SORT_IN_TEMPDB auf OFF festgelegt) angezeigt.
Wenn SORT_IN_TEMPDB auf "EIN" festgelegt ist, muss tempdb über ausreichend Speicherplatz verfügen, um den größten Index (1 Million * 200 Bytes ~ 200 MB) zu speichern. Der Füllfaktor wird im Sortiervorgang nicht berücksichtigt.
Zusätzlicher Festplattenspeicher (im tempdb-Speicherort), der dem Wert der Serverkonfigurationsoption Konfiguriere den Index-Erstellungsspeicher entspricht, beträgt 2 MB.
Gesamtgröße des temporären Speicherplatzes mit SORT_IN_TEMPDB auf „Ein“ gesetzt: ~202 MB.
Wenn SORT_IN_TEMPDB auf OFF (Standardeinstellung) festgelegt ist, wird der für den neuen Index in Schritt 2 bereits berücksichtigte Speicherplatz von 250 MB für die Sortierung verwendet.
Zusätzlicher Speicherplatz (im Zielspeicherort) entspricht dem Wert der Serverkonfigurationsoption „Index erstellen konfigurieren“ = 2 MB.
Gesamtgröße des temporären Speicherplatzes, wenn SORT_IN_TEMPDB auf OFF gesetzt ist = 2 MB.
Bei Verwendung von tempdb wären insgesamt 1018 MB (816 + 202) erforderlich, um die gruppierten und nicht gruppierten Indizes zu erstellen. Obwohl die Verwendung von tempdb den temporären Speicherplatz erhöht, der zum Erstellen eines Indexes verwendet wird, kann die Zeit reduziert werden, die zum Erstellen eines Index erforderlich ist, wenn tempdb sich auf einer anderen Gruppe von Datenträgern befindet als die Benutzerdatenbank. Weitere Informationen zur Verwendung von tempdb finden Sie unter SORT_IN_TEMPDB Option For Indexes.
Ohne die Verwendung von tempdb wären insgesamt 818 MB (816+ 2) erforderlich, um die gruppierten und nicht gruppierten Indizes zu erstellen.
Festplattenspeicherberechnungen für einen Onlinecluster-Indexvorgang
Wenn Sie einen gruppierten Index online erstellen, ablegen oder neu erstellen, ist zusätzlicher Speicherplatz erforderlich, um einen temporären Zuordnungsindex zu erstellen und zu verwalten. Dieser temporäre Zuordnungsindex enthält einen Eintrag für jede Zeile in der Tabelle, und sein Inhalt ist die Vereinigung der alten und neuen Lesezeichen-Spalten.
Um den für einen Onlinecluster-Indexvorgang benötigten Speicherplatz zu berechnen, führen Sie die schritte aus, die für einen Offlineindexvorgang angezeigt werden, und fügen Sie diese Ergebnisse den Ergebnissen des folgenden Schritts hinzu.
Legen Sie den Speicherplatz für den temporären Zuordnungsindex fest.
In diesem Beispiel ist das alte Lesezeichen die Zeilen-ID (RID) des Heaps (8 Byte), und das neue Lesezeichen ist der Clusterschlüssel (24 Byte einschließlich eines
uniqueifier). Es gibt keine überlappenden Spalten zwischen den alten und neuen Textmarken.Temporäre Zuordnungsindexgröße = 1 Million * (8 Bytes + 24 Bytes) / 80% ~ 40 MB.
Dieser Speicherplatz muss dem erforderlichen Speicherplatz am Zielspeicherort hinzugefügt werden, wenn SORT_IN_TEMPDB auf "AUS" festgelegt ist, oder zu tempdb, wenn SORT_IN_TEMPDB auf "EIN" festgelegt ist.
Weitere Informationen zum temporären Zuordnungsindex finden Sie unter Datenträgerspeicheranforderungen für Index-DDL-Vorgänge.
Zusammenfassung des Speicherplatzes
In der folgenden Tabelle sind die Ergebnisse der Festplattenspeicherberechnungen zusammengefasst.
| Indexvorgang | Speicherplatzanforderungen für die Speicherorte der folgenden Strukturen |
|---|---|
| Offline-Indexvorgang mit SORT_IN_TEMPDB = Aktiviert | Gesamtspeicher während des Vorgangs: 1018 MB: -Vorhandene Tabellen und Indizes: 363 MB* - tempdb: 202 MB* -Neue Indizes: 453 MB Gesamtspeicherbedarf nach dem Vorgang: 453 MB |
| Offline-Indexvorgang mit SORT_IN_TEMPDB = OFF | Gesamtspeicher während des Vorgangs: 816 MB: -Vorhandene Tabellen und Indizes: 363 MB* -Neue Indizes: 453 MB Gesamtspeicherbedarf nach dem Vorgang: 453 MB |
| Online-Indexvorgang mit SORT_IN_TEMPDB = AN | Gesamtspeicher während des Vorgangs: 1058 MB: -Vorhandene Tabellen und Indizes: 363 MB* - tempdb (einschließlich Zuordnungsindex): 242 MB* -Neue Indizes: 453 MB Gesamtspeicherbedarf nach dem Vorgang: 453 MB |
| Online-Indexoperation mit SORT_IN_TEMPDB = OFF | Gesamtspeicher während des Vorgangs: 856 MB: -Vorhandene Tabellen und Indizes: 363 MB* -Temporärer Zuordnungsindex: 40 MB* -Neue Indizes: 453 MB Gesamtspeicherbedarf nach dem Vorgang: 453 MB |
*Dieser Speicherplatz wird freigegeben, nachdem der Indexvorgang abgeschlossen ist.
In diesem Beispiel wird kein zusätzlicher temporärer Speicherplatz in tempdb für Versionsdatensätze berücksichtigt, die durch gleichzeitige Benutzeraktualisierungs- und Löschvorgänge erstellt wurden.