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.
Gilt für:SQL Server
Azure SQL-Datenbank
Verwaltete Azure SQL-Instanz
SQL-Datenbank in Microsoft Fabric
Umfangreiche Indexvorgänge können riesige Datenmengen erzeugen, die zu einem schnellen Füllen des Transaktionsprotokolls führen können. Um sicherzustellen, dass der Indexvorgang rückgängig gemacht werden kann, kann das Transaktionsprotokoll erst abgeschnitten werden, wenn der Indexvorgang abgeschlossen ist. Das Protokoll kann jedoch während des Indexvorgangs gesichert werden. Deshalb muss das Transaktionsprotokoll über ausreichend Speicherplatz verfügen, um sowohl die Transaktionen des Indexvorgangs als auch alle gleichzeitigen Benutzertransaktionen für die Dauer des Indexvorgangs aufnehmen zu können.
Das gilt sowohl für Offline- als auch für Onlineindexvorgänge. Da während eines Offlineindexvorgangs auf die zugrunde liegenden Tabellen nicht zugegriffen werden kann, gibt es möglicherweise nur wenige Benutzertransaktionen, und das Protokoll kann nicht so schnell wachsen. Onlineindexvorgänge verhindern keine gleichzeitige Benutzeraktivität. Daher können umfangreiche Onlineindexvorgänge in Kombination mit erheblichen gleichzeitigen Benutzertransaktionen zu einem kontinuierlichen Wachstum des Transaktionsprotokolls führen, ohne dass eine Option zum Abschneiden des Protokolls besteht.
Empfehlungen
Beim Ausführen umfangreicher Indexvorgänge sollten Sie die folgenden Empfehlungen beachten:
Stellen Sie sicher, dass das Transaktionsprotokoll gesichert und abgeschnitten wird, bevor umfangreiche Indexvorgänge online ausgeführt werden, und dass das Protokoll über ausreichend Speicherplatz verfügt, um den projizierten Index und Benutzertransaktionen zu speichern.
Erwägen Sie, die Option
SORT_IN_TEMPDBONbei dem Indexvorgang festzulegen. Damit werden die Indextransaktionen von den gleichzeitigen Benutzertransaktionen getrennt. Die Indextransaktionen werden imtempdbTransaktionsprotokoll gespeichert, und die gleichzeitigen Benutzertransaktionen werden im Transaktionsprotokoll der Benutzerdatenbank gespeichert. Dadurch kann bei Bedarf das Transaktionsprotokoll der Benutzerdatenbank während der Indexierungsoperation gekürzt werden. Wenn sich dastempdbProtokoll nicht auf demselben Datenträger wie das Benutzerdatenbankprotokoll befindet, konkurrieren die beiden Protokolle nicht mit demselben Speicherplatz.Hinweis
Stellen Sie sicher, dass die Datenbank und das
tempdbTransaktionsprotokoll über ausreichend Speicherplatz verfügen, um den Indexvorgang zu verarbeiten. DastempdbTransaktionsprotokoll kann erst gekürzt werden, wenn der Indexvorgang abgeschlossen ist.Verwenden Sie ein Datenbankwiederherstellungsmodell, das eine minimale Protokollierung des Indexvorgangs zulässt. Dies kann die Größe des Protokolls verringern und verhindern, dass das Protokoll den Protokollspeicher ausfüllt.
Führen Sie den Onlineindexvorgang nicht in einer expliziten Transaktion aus. Das Protokoll wird erst gekürzt, wenn die expliziten Transaktion endet.