Udostępnij za pomocą


Miejsce na dysku dziennika transakcji dla operacji indeksowania

Dotyczy:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceBaza danych SQL w usłudze Microsoft Fabric

Operacje indeksowania na dużą skalę mogą generować duże obciążenia danych, które mogą spowodować szybkie wypełnienie dziennika transakcji. Aby upewnić się, że operacja indeksu może zostać wycofana, dziennik transakcji nie może zostać obcięty do momentu zakończenia operacji indeksu; można jednak utworzyć kopię zapasową dziennika podczas operacji indeksu. W związku z tym dziennik transakcji musi mieć wystarczającą ilość miejsca do przechowywania zarówno transakcji operacji indeksowania, jak i wszystkich współbieżnych transakcji użytkownika w czasie trwania operacji indeksowania.

Dotyczy to zarówno operacji indeksu offline, jak i online. Ponieważ nie można uzyskać dostępu do bazowych tabel podczas operacji indeksu w trybie offline, może być mniej transakcji użytkowników, a dziennik transakcji może nie rosnąć tak szybko. Operacje indeksowania online nie uniemożliwiają równoczesnej aktywności użytkownika, dlatego operacje indeksów online na dużą skalę w połączeniu ze znaczącymi równoczesnymi transakcjami użytkownika mogą spowodować ciągły wzrost dziennika transakcji bez możliwości obcinania dziennika.

Rekomendacje

Podczas uruchamiania operacji indeksowania na dużą skalę należy wziąć pod uwagę następujące zalecenia:

  1. Upewnij się, że kopia zapasowa dziennika transakcji została utworzona i obcięta przed uruchomieniem operacji indeksu na dużą skalę w trybie online oraz że dziennik ma wystarczającą ilość miejsca do przechowywania przewidywanych transakcji indeksu i użytkownika.

  2. Rozważ ustawienie SORT_IN_TEMPDB opcji ON dla operacji indeksu. Spowoduje to oddzielenie transakcji indeksu od współbieżnych transakcji użytkownika. Transakcje indeksu są przechowywane w dzienniku tempdb transakcji, a współbieżne transakcje użytkownika są przechowywane w dzienniku transakcji bazy danych użytkowników. Pozwala to na obcięcie dziennika transakcyjnego bazy danych użytkownika podczas operacji indeksowania, w razie potrzeby. Ponadto jeśli tempdb dziennik nie znajduje się na tym samym dysku co dziennik bazy danych użytkownika, te dwa dzienniki nie konkurują o to samo miejsce na dysku.

    Uwaga / Notatka

    Sprawdź, tempdb czy baza danych i dziennik transakcji mają wystarczającą ilość miejsca na dysku, aby obsłużyć operację indeksowania. tempdb Dziennik transakcji nie może zostać obcięty, dopóki operacja indeksu nie zostanie ukończona.

  3. Użyj modelu odzyskiwania bazy danych, który umożliwia minimalne rejestrowanie operacji indeksowania. Może to zmniejszyć rozmiar dziennika i zapobiec przepełnieniu przestrzeni dziennika.

  4. Nie uruchamiaj operacji indeksu online w jawnej transakcji. Dziennik nie zostanie obcięty do momentu zakończenia jawnej transakcji.