Tempdb serwera (SQL Server 2008) wzrasta do 500 GB + kilka razy w miesiącu. Czy można dowiedzieć się, które instrukcje SQL spowodowały ten problem? Problem zwykle nie jest spowodowany złożonymi połączeniami create table #temp...; insert into #temp...
lub select ... into #temp...
tylko nimi.
Początkowe Wielkość niektórych plików tempdb jest również automatycznie ustawione na znacznie większe wartości za każdym razem. Jak temu zapobiec?
Czasami plany buforowane uniemożliwiają zmianę rozmiaru / zmniejszenie plików. Jak znaleźć, który posiada tempdb?
sql-server
sql-server-2008
tempdb
u23432534
źródło
źródło
Odpowiedzi:
Istnieją trzy DMV, których możesz użyć do śledzenia użycia tempdb:
Pierwsze dwa pozwalają śledzić przydziały na poziomie zapytania i sesji. Trzeci śledzi przydziały dla magazynu wersji, użytkownika i obiektów wewnętrznych.
Poniższe przykładowe zapytanie da przydziały na sesję:
Jeśli chcesz śledzić użycie przez pewien czas, rozważ zbieranie danych za pomocą sp_whoisactive , jak wykazała Kendra Little .
źródło
[SPACE Allocated FOR USER Objects (in KB)]
i[SPACE Deallocated FOR USER Objects (in KB)]
faktyczne zajęte miejsce sesji?Mogą istnieć różne źródła problemu:
SORT_IN_TEMPDB = ON
źródło