적용 대상:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure 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, S0 및 S1 서비스 목표 또는 탄력적 풀 내의 데이터베이스에 대해서는 서버 관리자 계정, 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;