Jak można zatrzymać zakleszczenie w programie SQL Server?
Jak można zatrzymać zakleszczenie w programie SQL Server?
Anonim

Wskazówki dotyczące unikania impasy

Robić nie zezwalaj na wprowadzanie danych przez użytkownika podczas transakcji. Unikać kursory. Trzymać transakcje jak najkrótsze. Zmniejsz liczbę podróży w obie strony między aplikacją a Serwer SQL stosując procedury składowane lub przechowując transakcje w ramach jednej partii

Pojawia się również pytanie, jak możemy zmniejszyć zakleszczenie w SQL Server?

Uzyskaj dostęp do obiektów w tej samej kolejności

  1. Uzyskaj dostęp do obiektów w tej samej kolejności.
  2. Unikaj interakcji użytkownika w transakcjach.
  3. Utrzymuj krótkie transakcje w jednej partii.
  4. Użyj niższego poziomu izolacji.
  5. Użyj poziomu izolacji opartego na wersji wiersza.

Ponadto, co powoduje zakleszczenie w programie SQL Server? ten Przyczyna z każdego Zakleszczenie w SQL Server A impas Dzieje się tak, gdy dwie (lub więcej) transakcje blokują się wzajemnie, utrzymując blokady na zasobach, których każda z transakcji również potrzebuje. Na przykład: Transakcja 1 blokuje tabelę A. Zakleszczenia może obejmować więcej niż dwie transakcje, ale dwie są najczęstszym scenariuszem.

Jak więc rozwiązać impas?

ten impas może być rozwiązany łamiąc symetrię.

Dwa procesy konkurujące o dwa zasoby w odwrotnej kolejności.

  1. Przechodzi jeden proces.
  2. Późniejszy proces musi poczekać.
  3. Zakleszczenie występuje, gdy pierwszy proces blokuje pierwszy zasób w tym samym czasie, gdy drugi proces blokuje drugi zasób.

Jak analizować zakleszczenie w programie SQL Server?

Śledzić impas wydarzenia, dodaj Impas wykres klasy zdarzenia do śledzenia. Ta klasa zdarzeń wypełnia kolumnę danych TextData w śledzeniu danymi XML dotyczącymi procesu i obiektów zaangażowanych w impas . Serwer SQL Profiler może wyodrębnić dokument XML do impas XML (.

Zalecana: