적용 대상:SQL 서버
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Microsoft Fabric
의 SQL 분석 엔드포인트Microsoft Fabric
의 웨어하우스Microsoft Fabric의 SQL 데이터베이스
동적 관리 뷰는 sys.dm_tran_active_transactions 인스턴스의 트랜잭션 정보를 반환합니다.
| 열 이름 | 데이터 형식 | 설명 |
|---|---|---|
transaction_id |
bigint | 데이터베이스 수준이 아닌 인스턴스 수준의 트랜잭션 ID입니다. 이 ID는 한 인스턴스 내의 모든 데이터베이스에서 고유하지만 모든 서버 인스턴스에서 고유하지는 않습니다. |
name |
nvarchar(32) | 트랜잭션 이름입니다. 트랜잭션이 표시된 경우 표시된 이름이 트랜잭션 이름을 덮어쓰며 이를 대체합니다. |
transaction_begin_time |
datetime | 트랜잭션이 시작된 시간입니다. |
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 이 배포가 있는 노드의 식별자입니다. |
Permissions
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 이상에 대한 권한
서버에 대한 SERVER PERFORMANCE STATE 권한이 필요합니다 VIEW .
비고
Azure Synapse Analytics에서 이 동적 관리 뷰를 호출하려면 이 sys.dm_pdw_nodes_tran_active_transactions 구문은 Azure Synapse Analytics의 서버리스 SQL 풀에서 지원되지 않습니다.
Examples
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;