2

C# 4.0, 백 엔드 SQL Server 2012를 사용하는 winform 응용 프로그램에서 작업하고 있습니다. 하나의 쿼리로 인해 쿼리가 보류 중이기 때문에 잠시 기다리는 중입니다. 활성 모드에서 활동 모니터에 이 일시 중단 된 쿼리가 성공적으로 여러 번 실행되지만이 문제가 발생합니다.쿼리가 일시 중지 된 작업 상태와 LCK_M_X 대기 유형으로 표시되는 이유

활동 모니터 쇼 :

작업 주 : 일시 중단

명령을 업데이트

응용 프로그램 :하는 SqlClient 데이터 공급자

대기 시간 .NET : 5,673,610 ..... (무제한에게)

대기 유형 : LCK_M_X

대기 리소스 : keylock hobtid = 72057594058768384 dbid = 14 id = lock2dbc30880 mode = X associatedObjectId = 72057594058768384

쿼리 상태가 일시 중단되는 이유는 무엇입니까?

어떻게 중단시킬 수 있습니까?

답변

0

LCK_M_X은 어딘가에 배타적 잠금을 얻기 위해 쿼리가 대기 중임을 나타냅니다. 동일한 데이터베이스 개체를 사용하는 다른 응용 프로그램이나 스레드를 검사하여 경쟁 조건이나 프로세스 자체가 정리되지 않는지 확인하십시오.

어딘가에 코드에 다른 db 호출이나 중첩 된 proc 호출이 있습니까?

SQL 프로필러를 사용하여 잠금 요청이 무엇인지 확인하십시오.이 일 수 있습니다. 도움이 되긴하지만 더 많이 알지 못해서 말하기가 어렵습니다.

select * from sys.dm_tran_locks 

HTH