W moim portfolio odkrywam wiele baz danych, które zostały utworzone przy użyciu domyślnych ustawień autogrow (przyrosty 1 MB lub 10%), które rozszerzyły się na dłuższy czas. Jeśli chciałbym uzyskać ocenę stopnia fragmentacji zewnętrznej dla każdego z plików DB, czy mogę uzyskać z metadanych, ile razy rozmiar pliku DB został zmodyfikowany (przez autogrow lub ręcznie)? Aby wyjaśnić, czy mogę uzyskać z metadanych historię modyfikacji plików DB na czas życia bazy danych, nie tylko od momentu ponownego uruchomienia instancji?
sql-server
datafile
MattyZDBA
źródło
źródło
Odpowiedzi:
Możesz uzyskać informacje o zdarzeniach autogrowth z domyślnego śledzenia, jeśli jest włączony:
Z tego wynika, że śledzenie domyślne ma przechwytywanie zdarzeń automatycznego wzrostu pliku danych i automatycznego rejestrowania pliku dziennika . Aby sprawdzić, czy masz włączone śledzenie domyślne dla tego wystąpienia, możesz wykonać następujące czynności:
Uwaga: jest to zaawansowana opcja konfiguracji, więc
show advanced options
musiałoby zostać ustawione na 1, aby wyświetlić tę opcję konfiguracjisp_configure
. Ponadto, te dwa wydarzenia nie zostanie uruchomiony, jeśli plik wzrosła ręcznie .Oto szybkie przykładowe zapytanie, aby uzyskać te zdarzenia:
I możesz uzyskać
<Trace Path>
z funkcji systemusys.fn_trace_getinfo
:źródło