Freigeben über


Transaktionsprotokollspeicherplatz für Indexvorgänge

Umfangreiche Indexvorgänge können große Datenlasten generieren, die dazu führen können, dass das Transaktionsprotokoll schnell gefüllt wird. Um sicherzustellen, dass der Indexvorgang zurückgesetzt werden kann, kann das Transaktionsprotokoll nicht verkürzt werden, bevor der Indexvorgang abgeschlossen ist; das Protokoll kann jedoch während des Indexvorgangs gesichert werden. Daher muss das Transaktionsprotokoll über ausreichend Platz verfügen, um sowohl die Indexvorgangstransaktionen als auch alle gleichzeitigen Benutzertransaktionen für die Dauer des Indexvorgangs zu speichern. Dies 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, kann es nur wenige Benutzertransaktionen geben, und das Protokoll kann nicht so schnell wachsen. Onlineindexvorgänge verhindern keine gleichzeitige Benutzeraktivität. Daher können umfangreiche Onlineindexvorgänge, die mit erheblichen gleichzeitigen Benutzertransaktionen kombiniert werden, zu einem kontinuierlichen Wachstum des Transaktionsprotokolls führen, ohne dass eine Option zum Abschneiden des Protokolls besteht.

Empfehlungen

Berücksichtigen Sie beim Ausführen umfangreicher Indexvorgänge die folgenden Empfehlungen:

  1. Stellen Sie sicher, dass das Transaktionsprotokoll gesichert und trunkiert wurde, bevor umfangreiche Indexvorgänge online ausgeführt werden, und dass das Protokoll über ausreichend Speicherplatz verfügt, um den geplanten Index und die Benutzertransaktionen zu speichern.

  2. Erwägen Sie, die Option SORT_IN_TEMPDB für den Indexvorgang auf EIN festzulegen. Dadurch werden die Indextransaktionen von den gleichzeitigen Benutzertransaktionen getrennt. Die Indextransaktionen werden im tempdb-Transaktionsprotokoll gespeichert, und die gleichzeitigen Benutzertransaktionen werden im Transaktionsprotokoll der Benutzerdatenbank gespeichert. Dadurch kann bei Bedarf während der Indexoperation das Transaktionsprotokoll der Benutzerdatenbank gekürzt werden. Wenn sich das tempdb-Protokoll nicht auf demselben Datenträger wie das Benutzerdatenbankprotokoll befindet, konkurrieren die beiden Protokolle nicht mit demselben Speicherplatz.

    Hinweis

    Stellen Sie sicher, dass die tempdb-Datenbank und das Transaktionsprotokoll über ausreichend Speicherplatz verfügen, um den Indexvorgang zu verarbeiten. Das tempdb-Transaktionsprotokoll kann erst abgeschnitten werden, wenn der Indexvorgang abgeschlossen ist.

  3. Verwenden Sie ein Datenbankwiederherstellungsmodell, das die minimale Protokollierung des Indexvorgangs ermöglicht. Dies kann die Größe des Protokolls verringern und verhindern, dass das Protokoll den Protokollspeicher ausfüllt.

  4. Führen Sie den Onlineindexvorgang nicht in einer expliziten Transaktion aus. Das Protokoll wird erst gekürzt, wenn die explizite Transaktion endet.

Speicherplatzanforderungen für Index-DDL-Vorgänge

Indexspeicherplatz (Beispiel)