Jak monitorować zakleszczenia


11

Kiedy zaczynasz rozwiązywać problemy z zakleszczeniami programu SQL Server 2005/2008 i jak? Alarm jest włączany w SSMS za pośrednictwem alertu o stanie wydajności programu SQL Server, obiektów-> SQLServer: Blokady, Licznik-> Blokuj oczekiwania / s, Wystąpienie: _ Razem, Alert, jeśli licznik: wzrośnie powyżej wartości 3. Czy jest to proaktywny sposób monitorowania? Jaka jest dopuszczalna wartość? Byłbym bardzo wdzięczny za twoją pomoc. Dziękuję Ci!!!

Odpowiedzi:


7

Możesz użyć Powiadomień o zdarzeniach, aby otrzymywać powiadomienia za każdym razem, gdy nastąpi zakleszczenie na serwerze:

Widzieć:

Dodatkowe linki:


3

Najpierw spójrz na wykres impasu i zobacz dokładnie, co się dzieje. Następnie możesz rozważyć opcje, które zwykle sprowadzają się do a) zmodyfikowania aplikacji w celu standaryzacji według kolejności blokowania obiektów (np. Jeśli to możliwe, biorąc pod uwagę logikę aplikacji, zawrzyj z programistami konwencję, aby zawsze blokować tabele w kolejności alfabetycznej) lub b ) sprawdź, czy naprawdę działasz na odpowiednim poziomie izolacji w każdej transakcji.


Według stackoverflow.com/a/112256/14731 spójna kolejność blokowania nie zapobiega zakleszczeniom.
Gili

3

Wybrałbym automatyczne śledzenie po stronie serwera dwóch głównych problemów:

  • długie zapytania (ustalasz czas trwania, który jest długi dla twojego środowiska)

  • zakleszczenia - sprawdź wykres Zakleszczenie i łańcuch Blokada: Zakleszczenie

Otrzymasz pliki śledzenia każdego dnia i będziesz mógł monitorować akcję - sprawdź, czy jakieś zaplanowane zdarzenie nie powoduje problemów. Więcej informacji na temat profilowania produkcji można znaleźć w tym pytaniu: Korzystanie z SQL Profiler w bazie danych, która jest w produkcji .



1

System Center Operations Manager (SCOM) z SQL Server Management Pack może ostrzegać o zakleszczenia Jeśli włączysz zalogowaniu do wiadomości 1205. Można włączyć go z następującej kwerendy SQL: EXEC sp_altermessage 1205, 'WITH_LOG', 'true'.

Zobacz także moją odpowiedź na „Dlaczego nazwa obiektu i nazwa indeksu nie są wypełnione na wykresie zakleszczenia?” dla skryptu PowerShell napisałem, że pobierze informacje o zakleszczeniu z bufora zdarzeń i zapisze wykresy zakleszczenia jako pliki xdl, które można otworzyć w SQL Management Studio 2012 lub nowszym lub przeglądać w notatniku, aby zobaczyć więcej szczegółów.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.