| Termin | Definicja |
|---|---|
| Diagnostyka tempdb | Diagnostyka tempdb to proces analizy stanu i wydajności tymczasowej bazy systemowej wykorzystywanej przez SQL Server. Rola tempdb w silniku SQL Server
Diagnostyka tempdb obejmuje analizę zarówno plików danych i pliku dziennika transakcji, jak i sposobu, w jaki poszczególne sesje oraz zapytania wykorzystują przestrzeń tymczasową. Problemy mogą wynikać z braku wolnego miejsca, niewłaściwego rozmieszczenia plików, powolnego podsystemu dyskowego, intensywnego użycia tabel tymczasowych albo dużej liczby operacji wymagających zapisu danych pośrednich. Sama obecność dużego pliku tempdb nie oznacza jeszcze awarii, ponieważ jego rozmiar może być skutkiem wcześniejszego obciążenia i pozostawać stabilny po zakończeniu zapytań. Pliki, rozmiar i autowzrost tempdbPodstawowym etapem analizy jest sprawdzenie listy plików tempdb, ich typów, rozmiarów, bieżącego zajęcia oraz lokalizacji. Informacje te można odczytać z widoku katalogowego Wartości autowzrostu mogą być określone w megabajtach albo jako procent bieżącego rozmiaru pliku. Przyrost procentowy powoduje, że kolejne rozszerzenia zmieniają się wraz z rozmiarem pliku, co utrudnia przewidywanie zachowania i może prowadzić do bardzo dużych jednorazowych operacji wejścia-wyjścia. Diagnostyka powinna też uwzględniać, czy pliki danych mają porównywalny rozmiar i taki sam przyrost. Nieprawidłowa konfiguracja może powodować nierównomierne użycie plików oraz dodatkowe opóźnienia w czasie ich rozszerzania. Rozszerzanie pliku tempdb wymaga operacji na systemie plików, a w przypadku dziennika również odpowiedniej inicjalizacji jego zawartości. W przeciwieństwie do plików danych tempdb, plik dziennika nie korzysta z mechanizmu natychmiastowej inicjalizacji plików. Dlatego częste autowzrosty dziennika mogą być zauważalne jako opóźnienia. Podczas kontroli należy sprawdzić, czy rozmiary plików są wystarczające dla przewidywanego obciążenia i czy dostępna przestrzeń na woluminach pozwala na ich dalszy wzrost. Zużycie przestrzeni przez sesje i zapytaniaW SQL Server przestrzeń tempdb jest wykorzystywana przez obiekty użytkownika oraz obiekty wewnętrzne silnika. Obiekty użytkownika obejmują na przykład lokalne i globalne tabele tymczasowe oraz indeksy utworzone dla takich tabel. Obiekty wewnętrzne są tworzone przez silnik na potrzeby realizacji planów zapytań, między innymi podczas sortowania, agregacji, operacji hash join i innych etapów, w których wynik pośredni nie mieści się wyłącznie w pamięci. Do analizy przydziałów przestrzeni można wykorzystać widoki dynamicznego zarządzania, takie jak Istotnym sygnałem diagnostycznym są także oczekiwania związane z tempdb. Oczekiwanie Wersjonowanie wierszy i diagnostyka obciążeniaJeżeli na instancji działają mechanizmy wykorzystujące wersjonowanie wierszy, tempdb może przechowywać wersje wierszy potrzebne do zachowania wymaganej izolacji odczytu. Dotyczy to między innymi poziomów izolacji opartych na wersjonowaniu oraz funkcji korzystających z magazynu wersji. Długotrwała transakcja może utrzymywać stare wersje przez długi czas, nawet gdy jej aktywne zapytanie chwilowo nie wykonuje intensywnych operacji. W efekcie przestrzeń zajęta przez magazyn wersji może rosnąć i nie zwalniać się natychmiast. Do sprawdzania stanu magazynu wersji można wykorzystać Kompletna diagnostyka łączy dane z widoków dynamicznego zarządzania, konfigurację plików, plan wykonania problematycznych zapytań oraz parametry podsystemu dyskowego. Celem nie jest automatyczne zmniejszenie plików po każdym epizodzie, lecz ustalenie, czy źródłem problemu jest zapytanie, długotrwała transakcja, brak miejsca, opóźnienia wejścia-wyjścia, konfiguracja autowzrostu czy konkurencja wielu zadań o zasoby tempdb. Zmiana rozmiaru plików powinna wynikać z rozpoznanej przyczyny i zostać poprzedzona oceną dostępnej przestrzeni oraz wpływu operacji na działającą instancję. |