STL_TR_CONFLICT
데이터베이스 테이블과 트랜잭션 충돌 문제를 식별하여 해결할 수 있는 정보를 표시합니다.
트랜잭션 충돌은 두 명 이상의 사용자가 트랜잭션을 직렬화할 수 없는 테이블에서 데이터 행을 쿼리하고 수정하는 경우에 발생합니다. 직렬화 가능성을 중단하는 문을 실행하는 트랜잭션은 중지되고 롤백됩니다. 트랜잭션 충돌이 발생할 때마다 Amazon Redshift는 취소된 트랜잭션에 대한 세부 정보가 포함된 STL_TR_CONFLICT 시스템 테이블에 데이터 행을 작성합니다. 자세한 내용은 직렬화 가능 격리 섹션을 참조하세요.
STL_TR_CONFLICT는 슈퍼 사용자에게만 표시됩니다. 자세한 내용은 시스템 테이블 및 뷰에 있는 데이터의 가시성 섹션을 참조하세요.
이 테이블의 데이터 중 일부 또는 전부는 SYS 모니터링 뷰인 SYS_TRANSACTION_HISTORY에서도 찾아볼 수 있습니다. SYS 모니터링 뷰의 데이터는 사용 및 이해가 더 쉽도록 형식이 지정되어 있습니다. 쿼리에 SYS 모니터링 뷰를 사용하는 것이 좋습니다.
테이블 열
열 명칭 | 데이터 유형 | 설명 |
---|---|---|
xact_id | bigint | 롤백된 트랜잭션의 트랜잭션 ID |
process_id | bigint | 롤백된 트랜잭션과 연결된 프로세스입니다. |
xact_start_ts | 타임스탬프 | 트랜잭션이 시작된 타임스탬프(UTC)입니다. |
abort_time | 타임스탬프 | 트랜잭션이 중지된 타임스탬프(UTC)입니다. |
table_id | bigint | 충돌이 발생한 테이블의 테이블 ID |
샘플 쿼리
특정 테이블이 관련된 충돌 정보를 반환하려면 다음과 같이 테이블 ID를 지정하여 쿼리를 실행합니다.
select * from stl_tr_conflict where table_id=100234
order by xact_start_ts;
xact_id|process_| xact_start_ts | abort_time |table_
|id | | |id
-------+--------+--------------------------+--------------------------+------
1876 | 8551 |2010-03-30 09:19:15.852326|2010-03-30 09:20:17.582499|100234
1928 | 15034 |2010-03-30 13:20:00.636045|2010-03-30 13:20:47.766817|100234
1991 | 23753 |2010-04-01 13:05:01.220059|2010-04-01 13:06:06.94098 |100234
2002 | 23679 |2010-04-01 13:17:05.173473|2010-04-01 13:18:27.898655|100234
(4 rows)
테이블 ID는 직렬성 위반 오류 메시지(error 1023)의 DETAIL 영역에서 가져올 수 있습니다.