2013-02-28 11 views
5

Temp tempu mojego wystąpienia zwiększył się ogromnie, pochłaniając całą dostępną przestrzeń dyskową i powodując awarię aplikacji. Musiał ponownie uruchomić instancję w sytuacji awaryjnej. Chciałbym jednak zbadać i pogrążyć się głęboko w tym, co spowodowało, że tymczasowe bazy danych stały się nagle ogromne. Jakie były zapytania, procesy, które to spowodowały? Czy ktoś może mi pomóc w wyciągnięciu wymaganych informacji. Wiem, że nie otrzymam wiele danych historycznych z SQL Server. Mam wdrożony Idera SQL Diagnostic Manager (narzędzie innej firmy). Każda pomoc w korzystaniu z tego narzędzia byłaby naprawdę doceniana.SQL Server 2005 - Zbadaj, co spowodowało ogromny wzrost temperatury tempdb

+1

Nie sądzę, że można przeprowadzić analizę pośmiertną. Jednak można przeczytać wiele interesujących informacji na temat śledzenia użycia tempdb tutaj: http://technet.microsoft.com/library/Cc966545 –

Odpowiedz

2

Istnieje kilka powodów, które mogą spowodować, że tempdb stanie się bardzo duży.

Wiele sortowania - jeśli to wymaga więcej pamięci niż serwer sql jest wtedy będzie przechowywać wszystkie wyniki temp w tempdb Komendy

DBCC - jeśli często działa komendy takie jak DBCC CHECKDB może to być przyczyna. Funkcje te przechowywać swoje wyniki w db temp

bardzo dużych resultsets - są one również przy użyciu db temp działał poprawnie

wiele ciężkich operacji, takich jak wkładki luzem

Sprawdź ten artykuł Więcej szczegółów http://msdn.microsoft.com/en-us/library/ms176029.aspx w jaki sposób rozwiązać ten problem.

1

AK2, Posiadamy również narzędzie Idera DM. Jeśli znasz ramy czasowe, o których czas był używany, to możesz przejść do Historii w narzędziu Idera, aby sprawdzić, jakie zapytanie zostało uruchomione w tym czasie i co doprowadziło serwer do węża ... Na "Przestrzeni Tempdb wykorzystanej OverTime "zazwyczaj widzisz linię prostą lub wykres, ale w czasie intensywnego używania tempdb jest szczupak i kropla prosta. Odnosząc się do tego przedziału czasowego, możesz sprawdzić Sesje> Szczegóły również, zobacz dokładne zapytanie i kto prowadził zapytanie.

W naszym serwerze dzieje się to zazwyczaj, gdy trwa długie zapytanie, które powoduje wiele sprzężeń. lub gdy istnieje kosztowna kwerenda z udziałem w dumpingu do tabeli temp/tabela zmiennej. Mam nadzieję, że to pomoże.

3

odnośnik chodzi o analizę post mortem, można użyć narzędzia już zainstalowane na serwerze. W przypadku przyszłej proaktywnej analizy można użyć śledzenia SQL bezpośrednio w programie SQL Profiler lub wykonać zapytanie dotyczące śledzenia za pomocą instrukcji SQL.

sys.fn_trace_gettable

sys.trace_events

Można również użyć narzędzia audytu, który śledzi każde zdarzenie, które miało miejsce na przykład SQL Server i baz danych, takich jak ApexSQL Comply. Wykorzystuje również ślady SQL, konfiguruje je automatycznie i przetwarza przechwycone informacje. Śledzi dostęp do obiektu i danych oraz zmiany, nieudane i udane logowania, zmiany zabezpieczeń itp. ApexSQL Comply ładuje wszystkie przechwycone informacje do centralnego repozytorium.

enter image description here

Powiązane problemy