2011-10-27 1 views

답변

9

/연구되지 않은 검증되지 않은 있지만

SELECT at.transaction_id, 
     at.transaction_begin_time, 
     st.session_id 
FROM sys.dm_tran_active_transactions at 
LEFT JOIN sys.dm_tran_session_transactions st 
    ON at.transaction_id = st.transaction_id 
ORDER BY transaction_begin_time 

같은?

+0

당신과 [Pinal의 접근 방법] (http://stackoverflow.com/questions/7916210/how-to-identify-and-kill 가장 긴 실행 트랜잭션/7916316 # 7916316) 다른 결과를 제공합니다. 쿼리는 현재 session_id = NULL 인 22 개의 트랜잭션을 모두 나열하지만 Pinals는이 쿼리 자체의 트랜잭션 만 표시합니다 (Session_Id = 57). 왜? –

+1

@TimSchmelter - Piny 's가 현재 트랜잭션에 참여하거나 참여하지 않을 수있는 문장을 실행하고있는 반면, 내 쿼리는 ** 내부 시스템을 포함하여 질문에 지정된대로 ** 트랜잭션 **을 나열하기 때문에. 보고 쿼리에서 거래를 보는 '선택'만하는 것이 도움이되지 않습니다. –

+8

@Tim Schmelter : Pinal 사이트의 "권위"라는 단어는 실제 "권위"가 아닌 유머의 형태로 받아 들여야합니다. – gbn

4

SQL Server Management Studio에서 작업중인 데이터베이스 -> 보고서 -> 모든 트랜잭션을 마우스 오른쪽 단추로 클릭하면 계속 트랜잭션의 ID를 찾을 수 있습니다. 트랜잭션의 ID를 결정한 후에는 새 쿼리를 만들고 다음 쿼리를 실행합니다. 예 : kill 96

+0

흠, 현재이 데이터베이스에는 열려있는 트랜잭션이 없습니다. 그 동안 내 보고서가 중지되었지만 적어도 웹 응용 프로그램이이 DB를 많이 사용하기 때문에 다른 활성 트랜잭션이없는 이유가 궁금합니다. 어쨌든 고마워. –

관련 문제