다음을 통해 공유


sys.dm_tran_active_transactions(Transact-SQL)

적용 대상:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse Analytics분석 플랫폼 시스템(PDW)Microsoft Fabric의 SQL 분석 엔드포인트Microsoft Fabric의 웨어하우스Microsoft Fabric의 SQL 데이터베이스

동적 관리 뷰는 sys.dm_tran_active_transactions 인스턴스의 트랜잭션 정보를 반환합니다.

열 이름 데이터 형식 설명
transaction_id bigint 데이터베이스 수준이 아닌 인스턴스 수준의 트랜잭션 ID입니다. 이 ID는 한 인스턴스 내의 모든 데이터베이스에서 고유하지만 모든 서버 인스턴스에서 고유하지는 않습니다.
name nvarchar(32) 트랜잭션 이름입니다. 트랜잭션이 표시된 경우 표시된 이름이 트랜잭션 이름을 덮어쓰며 이를 대체합니다.
transaction_begin_time 날짜/시간 트랜잭션이 시작된 시간입니다.
transaction_type int 트랜잭션 유형입니다.

1 = 읽기/쓰기 트랜잭션

2 = 읽기 전용 트랜잭션

3 = 시스템 트랜잭션

4 = 분산 트랜잭션
transaction_uow uniqueidentifier 분산 트랜잭션에 대한 UOW(트랜잭션 단위) 식별자입니다. Microsoft 분산 트랜잭션 조정기(MS DTC)는 분산 트랜잭션을 다루기 위해 UOW 식별자를 사용합니다.
transaction_state int 0 = 트랜잭션이 아직 완전히 초기화되지 않았습니다.

1 = 트랜잭션은 초기화되었으나 시작되지 않았습니다.

2 = 트랜잭션이 활성 상태입니다.

3 = 트랜잭션이 종료되었습니다. 읽기 전용 거래에 사용됩니다.

4 = 분산 트랜잭션에서 커밋 프로세스가 시작되었습니다. 분산 거래에만 해당됩니다. 분산 트랜잭션은 여전히 활성 상태이지만 추가 처리는 수행할 수 없습니다.

5 = 트랜잭션이 준비된 상태이며 확인 대기 중입니다.

6 = 트랜잭션이 커밋되었습니다.

7 = 트랜잭션이 롤백되고 있습니다.

8 = 트랜잭션이 롤백되었습니다.
transaction_status int 정보를 제공하기 위해서만 확인됩니다. 지원 안 됨. 향후 호환성은 보장되지 않습니다.
transaction_status2 int 정보를 제공하기 위해서만 확인됩니다. 지원 안 됨. 향후 호환성은 보장되지 않습니다.
dtc_state int 적용 대상: Azure SQL Database.

1 = 활성

2 = 준비

3 = 커밋됨

4 = 중단됨

5 = 복구됨
dtc_status int 정보를 제공하기 위해서만 확인됩니다. 지원 안 됨. 향후 호환성은 보장되지 않습니다.
dtc_isolation_level int 정보를 제공하기 위해서만 확인됩니다. 지원 안 됨. 향후 호환성은 보장되지 않습니다.
filestream_transaction_id varbinary(128) 적용 대상: Azure SQL Database.

정보를 제공하기 위해서만 확인됩니다. 지원 안 됨. 향후 호환성은 보장되지 않습니다.
pdw_node_id int 적용 대상: Azure Synapse Analytics, Analytics Platform System(PDW)

이 배포가 있는 노드의 식별자입니다.

사용 권한

SQL Server 및 SQL Managed Instance에서는 VIEW SERVER STATE 권한이 필요합니다.

Microsoft Fabric에서는 쿼리를 위해 sys.dm_tran_active_transactions기여자작업 공간 역할 또는 더 높은 권한 역할의 멤버십이 필요합니다.

SQL Database Basic, S0S1 서비스 목표 또는 탄력적 풀 내의 데이터베이스에 대해서는 서버 관리자 계정, Microsoft Entra 관리자 계정 또는 ##MS_ServerStateReader##서버 역할의 멤버 자격이 필요합니다. 다른 모든 SQL Database 서비스 목표에 대해서는 데이터베이스에 대한 VIEW DATABASE STATE 권한 또는 ##MS_ServerStateReader## 서버 역할의 멤버 자격이 필요합니다.

SQL Server 2022 이상에 대한 사용 권한

서버에 대한 VIEW SERVER PERFORMANCE STATE 권한이 필요합니다.

비고

Azure Synapse Analytics 또는 Analytics Platform System(PDW)에서 이 동적 관리 뷰를 호출하려면 이 문 sys.dm_pdw_nodes_tran_active_transactions 법은 Azure Synapse Analytics의 서버리스 SQL 풀에서 지원되지 않습니다.

예제

A. 다른 DMV와 sys.dm_tran_active_transactions 이용해 활성 거래 정보를 확인하세요

다음 예시는 시스템 내 활성 트랜잭션을 보여줍니다. 쿼리는 트랜잭션, 사용자 세션, 제출한 애플리케이션, 쿼리를 시작한 쿼리 등 다양한 정보를 제공합니다.

SELECT
  GETDATE() as now,
  DATEDIFF(SECOND, transaction_begin_time, GETDATE()) as tran_elapsed_time_seconds,
  st.session_id,
  txt.text, 
  *
FROM
  sys.dm_tran_active_transactions at
  INNER JOIN sys.dm_tran_session_transactions st ON st.transaction_id = at.transaction_id
  LEFT OUTER JOIN sys.dm_exec_sessions sess ON st.session_id = sess.session_id
  LEFT OUTER JOIN sys.dm_exec_connections conn ON conn.session_id = sess.session_id
    OUTER APPLY sys.dm_exec_sql_text(conn.most_recent_sql_handle)  AS txt
ORDER BY
  tran_elapsed_time_seconds DESC;