Jak ważne są VLF przy rozważaniu wydajności bazy danych? Co opisałoby optymalną sytuację dla VLF?
Jak ważne są VLF przy rozważaniu wydajności bazy danych? Co opisałoby optymalną sytuację dla VLF?
Odpowiedzi:
Co to jest wirtualny plik dziennika?
SQL Server dzieli plik dziennika transakcji dla każdej bazy danych na mniejsze porcje, zwane „wirtualnymi plikami dzienników” (w skrócie VLF). Ich podstawową funkcją są znaczniki obcięcia podczas tworzenia kopii zapasowej dziennika, tzn. SQL Server usunie (i zaznaczy dostępne do ponownego użycia) VLF, które są całkowicie puste. MSDN ma artykuł na temat dziennika transakcji - architektura fizyczna .
Co decyduje o liczbie VLF?
Za każdym razem, gdy rośnie plik dziennika (niezależnie od tego, czy jest to wzrost automatyczny, czy ręczny), nowa sekcja pliku dziennika jest dzielona na kilka VLF, wyłącznie w oparciu o rozmiar nowej sekcji (istniejący dziennik transakcji jest pozostawiony w spokoju). Tak więc małe ustawienia autogrowth (tj. Domyślny 10% autogrowth) spowoduje utworzenie dużej liczby VLF.
Jakie są konsekwencje dużej liczby VLF?
Podstawowym problemem wielu przyczyn VLF jest:
DBCC
ponieważ używają migawek bazy danych w tle, aby ułatwić sprawdzanie spójności bez blokowania).Jak mogę dowiedzieć się, ile VLF ma moja baza danych?
DBCC LOGINFO
zwróci 1 wiersz dla każdego VLF w dzienniku transakcji bazy danych. To pytanie zawiera kilka przydatnych skryptów do zastosowania go we wszystkich bazach danych na serwerze.
Ile VLF jest za dużo?
To wezwanie do osądu, które musisz wykonać dla siebie. Moją osobistą zasadą jest to, że poniżej 50 nie warto się bawić, a ponad 100 (lub mniej więcej) i naprawiam ustawienia autogrowth i zapisuję w pamięci (w następnym oknie konserwacji), aby zmniejszyć i odrodzić dziennik (jak poniżej) .
Wsparcie! Mam jedenaście miliardów VLF i odzyskiwanie bazy danych trwa cały dzień!
Krótki zarys (z bloga Kimberly Tripp ):
BACKUP LOG
)DBCC SHRINKFILE
z TRUNCATEONLY
skurczy plik dziennika do najmniejszej możliwej wielkości.ALTER DATABASE [...] MODIFY FILE [...] SIZE=newsize
aby zmienić rozmiar dziennika transakcji w jednym kroku **.** Uwaga - jeśli masz bardzo duży plik dziennika (dziesiątki GB lub więcej), możesz zmienić rozmiar w wielu krokach, aby uzyskać odpowiednią liczbę VLF o odpowiednim rozmiarze, aby uniknąć nadmiernie „grubych” kopii zapasowych dziennika. Ponieważ VLF są jednostką obcięcia, określają również rozmiary kopii zapasowych dziennika, jak wyszczególniono w blogu Kim .