Serwisanci dostępni teraz · czynne całą dobę, także w weekendy i świętaWarszawa i okolice · dojazd bezpłatny
Darmowa diagnoza laptopa
Darmowa diagnoza laptopa
Dojazd do klienta bezpłatnie
Dojazd do klienta bezpłatnie
Laptopy zastępcze bezpłatnie
Laptopy zastępcze bezpłatnie
Odbiór i zwrot sprzętu bezpłatnie
Odbiór i zwrot sprzętu bezpłatnie

Katalog TempDB

Termin Definicja
Katalog TempDB

Katalog TempDB to lokalizacja przechowywania plików tymczasowej bazy systemowej, odtwarzanej przy każdym starcie serwera.

Rola katalogu TempDB w SQL Server

Katalog TempDB oznacza lokalizację, w której instancja Microsoft SQL Server przechowuje pliki systemowej bazy danych tempdb. Baza ta służy do obsługi danych tymczasowych tworzonych podczas działania zapytań, procedur składowanych, sortowania, agregacji, operacji z klauzulą GROUP BY, tabel tymczasowych oraz innych procesów wewnętrznych silnika. W typowej instalacji znajdują się tam co najmniej plik danych oraz plik dziennika transakcji. Mogą występować także dodatkowe pliki danych, jeśli konfiguracja instancji została odpowiednio zmieniona.

tempdb jest bazą specjalnego przeznaczenia. Po każdym uruchomieniu usługi SQL Server jej zawartość jest tworzona ponownie na podstawie konfiguracji zapisanej przez silnik. Oznacza to, że obiekty utworzone w niej podczas poprzedniej sesji, w tym tabele tymczasowe, nie są przeznaczone do trwałego przechowywania. Z tego powodu katalog TempDB nie powinien być traktowany jako zwykły folder na dane użytkownika ani jako miejsce przechowywania kopii zapasowych.

Pliki danych, dziennik i odbudowa po restarcie

W lokalizacji TempDB mogą znajdować się pliki z rozszerzeniami .mdf, .ndf oraz .ldf. Plik główny danych ma zwykle rozszerzenie .mdf, dodatkowe pliki danych używają rozszerzenia .ndf, a dziennik transakcji jest przechowywany w pliku .ldf. Sama nazwa katalogu nie przesądza o poprawności konfiguracji, ponieważ ścieżki poszczególnych plików są zapisane w metadanych instancji i mogą wskazywać różne woluminy.

Podczas startu SQL Server sprawdza zapisane lokalizacje plików tempdb i odtwarza bazę zgodnie z jej definicją. Jeżeli wskazany katalog nie istnieje, wolumin jest niedostępny albo konto usługi nie ma wymaganych uprawnień, uruchomienie instancji może zakończyć się błędem. Zmiana nazwy folderu w Eksploratorze plików bez wcześniejszej zmiany konfiguracji SQL Server jest więc działaniem ryzykownym. Podobnie nie należy ręcznie przenosić lub usuwać plików tempdb, gdy usługa korzysta z nich podczas pracy.

Położenie plików można sprawdzić zapytaniem odczytującym widok katalogowy sys.master_files, ograniczając wynik do bazy tempdb. Informacje te pozwalają ustalić osobno ścieżkę pliku danych i ścieżkę pliku dziennika, a także ich rozmiary oraz sposób przyrostu. W środowisku wymagającym zmiany lokalizacji stosuje się konfigurację SQL Server, na przykład polecenie ALTER DATABASE tempdb MODIFY FILE, a następnie kontrolowany restart usługi i weryfikację, czy pliki zostały utworzone w nowym miejscu.

Wydajność i miejsce na woluminie TempDB

Znaczenie katalogu TempDB nie ogranicza się do samej obecności plików. SQL Server może intensywnie korzystać z tempdb podczas sortowania dużych zbiorów, tworzenia indeksów, wykonywania zapytań złożonych oraz operacji wykorzystujących wersjonowanie wierszy. Jeżeli pliki znajdują się na woluminie o małej ilości wolnego miejsca albo na nośniku o niskiej wydajności, problemy mogą objawiać się spowolnieniem zapytań, błędami braku miejsca oraz oczekiwaniem na operacje wejścia i wyjścia.

Ważny jest rozmiar początkowy plików oraz ustawienie przyrostu. Bardzo mały przyrost powoduje częste powiększanie pliku, natomiast nieprzemyślany przyrost procentowy może prowadzić do coraz większych skoków rozmiaru wraz ze wzrostem pliku. W praktyce konfigurację dobiera się do obciążenia, dostępnego woluminu i charakteru wykonywanych zapytań. Nie istnieje jedna wartość odpowiednia dla każdej instancji. Należy obserwować zajętość plików, wolne miejsce na dysku, czas operacji wejścia i wyjścia oraz oczekiwania związane z tempdb.

Diagnostyka powinna obejmować również rozróżnienie między brakiem miejsca w samej bazie a brakiem miejsca na całym woluminie. Nawet poprawnie skonfigurowany rozmiar plików nie rozwiąże problemu, jeżeli system plików nie może przydzielić kolejnych bloków. Kontrola powinna uwzględniać wszystkie pliki danych i plik dziennika, ponieważ każdy z nich może osiągnąć własny limit. W razie nieprawidłowości należy najpierw ustalić, który proces wykorzystuje tempdb i czy przyczyną jest konfiguracja, zapytanie, niewystarczające zasoby czy błąd ścieżki.

Bezpieczna kontrola konfiguracji katalogu TempDB

Sprawdzanie katalogu TempDB powinno rozpocząć się od odczytu konfiguracji instancji, a nie od ręcznej ingerencji w pliki. Należy potwierdzić, że każda ścieżka wskazuje istniejący katalog, właściwy wolumin oraz plik, do którego konto usługi SQL Server ma dostęp. Warto również sprawdzić, czy ustawienia plików odpowiadają aktualnemu obciążeniu i czy wolumin ma wystarczający zapas miejsca na przyrost. Podczas analizy trzeba rozdzielić problemy startu usługi od problemów wydajnościowych występujących dopiero po uruchomieniu zapytań.

Jeżeli diagnostyka wykazuje uszkodzoną konfigurację, niedostępną ścieżkę albo niekontrolowany wzrost plików, zmiany powinny być wykonywane według procedury właściwej dla SQL Server. Po modyfikacji należy ponownie uruchomić usługę w uzgodnionym oknie administracyjnym, sprawdzić utworzenie plików w docelowej lokalizacji oraz potwierdzić działanie zapytań korzystających z tempdb. Samo usunięcie zawartości katalogu, zmiana uprawnień metodą prób i błędów lub przeniesienie plików bez aktualizacji metadanych może doprowadzić do zatrzymania instancji.

W przypadku diagnozowania komputera, na którym działa lokalna instancja SQL Server, potrzebne są informacje o wersji silnika, stanie usługi, konfiguracji plików, dostępności woluminów oraz komunikatach z dziennika SQL Server i systemu operacyjnego. Takie dane pozwalają odróżnić błąd katalogu TempDB od problemu z usługą, dyskiem, uprawnieniami albo konkretnym zapytaniem powodującym nadmierne użycie przestrzeni tymczasowej.

+48 22 100 48 29Zadzwoń teraz · serwisant w 1 godzinę