2010-11-18 9 views
8

Podczas uruchamiania sp_who2, wydaje się, że jedno z moich poleceń SQL blokuje, ale czeka na proces, który jest "Spanie" i "Oczekiwanie na polecenie". To nie ma sensu.sp_who2 Proces śpiania BlkBy czeka na polecenie

alt text

Jakieś pomysły co może być przyczyną tego? Wiem, że DELETE działa wewnątrz transakcji, która wcześniej wstawiła wiele wierszy do tabeli, czy to może być problem?

Odpowiedz

11

Prawdopodobnie masz otwartą transakcję na SPID 98. blokująca SPID nie musi być aktywny

Spróbuj tego, spójrz na kolumnę

SELECT 
    p1.SPID AS blockedSPID, p2.SPID AS blockingSPID, ... 
FROM 
    master..sysprocesses p1 
    JOIN 
    master..sysprocesses p2 ON p1.blocked = p2.spid 

open_tran Kontynuując, this script gives otwierania transakcji, ostatni SQL i plan.

I mają lektury KB 224453 na dokładkę

+1

To był problem z tym, że SSRS nie korzystał ponownie z połączenia, z którym otworzyłem transakcję (a więc nigdy go nie zamknąłem), co ostatecznie oznaczało, że była otwarta transakcja przytrzymująca blokadę na stole. Dzięki za pomoc! –

0

Nie znając zapytania SQL uruchomionych byłoby niezmiernie trudno powiedzieć. Ale czy w oparciu o scenariusz "Usuń/Wstaw" nie jest możliwe, że uruchomiłeś transakcję dla wstawienia, a następnie otworzyłeś kolejną transakcję, aby usunąć niektóre z tych wstawionych rekordów, nie pomijając poprzedniej transakcji?

Widziałem już tego rodzaju problem i tak to się przejawia.

Powiązane problemy