Sdílet prostřednictvím


Místo na disku transakčního protokolu pro operace indexu

Platí pro:SQL ServerAzure SQL DatabaseSpravovaná instance Azure SQLDatabáze SQL v Microsoft Fabric

Rozsáhlé indexovací operace můžou generovat velké objemy dat, které můžou způsobit rychlé vyplnění transakčního protokolu. Aby bylo zajištěno, že operaci indexu lze vrátit zpět, transakční protokol nelze zkrátit, dokud se operace indexu nedokončí; Protokol je však možné zálohovat během operace indexu. Proto musí mít transakční protokol dostatek místa pro uložení transakcí indexu i souběžných uživatelských transakcí po dobu trvání operace indexu.

To platí pro offline i online indexovací operace. Vzhledem k tomu, že k podkladovým tabulkám není možné přistupovat během operace offline indexu, může dojít k několika uživatelským transakcím, a proto se protokol nemusí tak rychle zvětšovat. Online indexovací operace nezabrání souběžné aktivitě uživatelů, takže rozsáhlé online indexové operace v kombinaci s významnými souběžnými uživatelskými transakcemi můžou způsobit nepřetržitý růst transakčního protokolu bez možnosti zkrátit protokol.

Recommendations

Při spouštění rozsáhlých operací indexu zvažte následující doporučení:

  1. Před online spuštěním rozsáhlých operací indexu se ujistěte, že je transakční protokol zálohovaný a zkrácený a že protokol má dostatek místa pro uložení projektovaného indexu a uživatelských transakcí.

  2. Zvažte nastavení volby SORT_IN_TEMPDB na ON pro indexovou operaci. Tím se oddělí indexové transakce od souběžných uživatelských transakcí. Transakce indexu jsou uloženy v transakčním tempdb protokolu a souběžné uživatelské transakce jsou uloženy v transakčním protokolu uživatelské databáze. To umožňuje zkrátit transakční protokol uživatelské databáze během operace indexu v případě potřeby. Kromě toho platí, že pokud tempdb protokol není na stejném disku jako protokol uživatelské databáze, nebudou oba protokoly soupeřit o stejné místo na disku.

    Poznámka:

    Ověřte, že tempdb databáze a transakční protokol mají dostatek místa na disku pro zpracování operace indexu. Transakční tempdb protokol nelze zkrátit, dokud se nedokončí operace indexu.

  3. Použijte model obnovení databáze, který umožňuje minimální protokolování operace indexu. Tím se může zmenšit velikost protokolu a zabránit tomu, aby protokol zaplnil místo v protokolu.

  4. Nespouštějte online indexovou operaci v explicitní transakci. Protokol se neořízne, dokud explicitní transakce neskončí.