Najlepsza praktyka dla pliku dziennika tempdb

11

Przeczytałem wiele blogów tu i tam o tym, jak skonfigurować pliki danych tempdb, ale nie znalazłem żadnych informacji dotyczących pliku dziennika tempdb .

Oto strategia, której obecnie używam z moim tempdb:

  • Skorzystałem z zaleceń Paula Randala, jak podzielić moje pliki danych tempdb
  • Rozmiar moich plików danych tempdb ustawiłem na maksymalny i wyłączony autogrowth. Na przykład mam 100 GB wolnego miejsca na dysku i ustawiam rozmiar moich 8 plików danych tempdb na 10 GB każdy. Zapobiega to fragmentacji dysku zgodnie z zaleceniami Brenta Ozara, a także mam 20 GB wolnego miejsca na mój plik dziennika.

Ale jak powiedziałem, nikt nie mówi o pliku dziennika tempdb . Co powinienem z tym zrobić? W mojej instalacji ten plik jest w tym samym miejscu, co pliki danych tempdb. Jakiego rozmiaru i wartości autogrowth należy użyć z plikiem dziennika tempdb?

Alexandre Jobin
źródło
4
Nie ma na to magicznej odpowiedzi, z wyjątkiem tego, że nie wyłączyłbym autogrowth dla danych tempdb lub logu, chyba że absolutnie chcesz, aby system zatrzymał się z piskiem, gdyby autogrow był potrzebny. Nigdy nie wyłączyłbym autogrow dla żadnego pliku, ponieważ bez względu na to, jak dobrze planujesz, zawsze są sytuacje nienormalne.
Aaron Bertrand
2
@AaronBertrand: włączenie autogrowth na pełnowymiarowym tempdb nie pomoże. Są już na maksimum i mogą znajdować się na dysku. Zresztą nie ma już miejsca na dysku, którego mogliby użyć. Właśnie dlatego wyłączyłem autogrowth.
Alexandre Jobin
2
Czy to nie ma znaczenia, czy jest wyłączone, czy nie? Jeśli wymagany jest autogrow, to i tak się nie powiedzie. Jeśli pozostawisz to włączone, to o jedną rzecz mniej musisz zmienić, kiedy zdasz sobie sprawę, że być może musisz przenieść go na większy dysk.
Aaron Bertrand
1
PS 8 x 20> 100
Aaron Bertrand
1
Dzielenie plików niekoniecznie oznacza „dobrą konfigurację”. To zależy od konfiguracji sprzętu; których nie dostarczyłeś.
Paul,

Odpowiedzi:

5

To naprawdę zależy od tego, ile danych przepłynie przez dziennik transakcji. Zobacz, jak duży jest dziennik. Musisz skonfigurować dziennik, aby miał przynajmniej taki rozmiar podczas uruchamiania SQL. Dla większości moich klientów kończy się na dzienniku transakcji 3-4 Gig dla tempdb, który zawiera tylko kilka VLF i wszystko działa ładnie i płynnie.

mrdenny
źródło
0

Zawsze mówiono mi, aby przechowywać pliki dziennika w osobnej macierzy dyskowej / fizycznej, jeśli Twój sprzęt może jednocześnie zapisywać dane i logować się w tym samym czasie, aby poprawić wydajność. Domyślam się, że ograniczenie, które zrodziło twój limit tempdb 20G, może zdefiniować odpowiedź na rozmiar. W przypadku automatycznego wzrostu może to zależeć od uruchomionych transakcji, dostępnego wolnego miejsca i innych zasobów na dysku. Zazwyczaj arbitralnie wybieram 1/6 początkowego rozmiaru.

Robert Gannon
źródło
0

Aaron ma rację konfiguracja TempDB zależy od wielu zmiennych, takich jak to, czy planujesz użyć izolacji migawek itp. Oto starsza biała księga SQL 2005 od MS / TN, która może ci pomóc, ponieważ spora jej część wciąż ma zastosowanie. W szczególności zajrzyj do „Wymaganego miejsca do rejestrowania tempdb”, aby zobaczyć, jakie rodzaje transakcji są rejestrowane w dzienniku tempdb, aby odpowiednio skonfigurować ustawienia. Prawdopodobnie będzie to coś, co z czasem będziesz musiał monitorować i modyfikować.

Jeśli chodzi o authogrowth dla tempdb, niechętnie wyłączyłem to w przeszłości na serwerze raportującym, a zachowanie, którego doświadczyłem, było takie, że spowodowało przerwanie i wycofanie długotrwałej transakcji, co natychmiast zwolniło miejsce w dzienniku, ale może to zależeć od rodzaj transakcji, która w moim przypadku jest masywnym sortowaniem i łączeniem operacji (źle napisane zapytania raportów). Zgadzam się z Aaronem i zaleciłbym unikanie tego, jeśli to możliwe, szczególnie w sytuacjach dużej liczby transakcji.

Miketk
źródło