SHOW LOCKS
SHOW LOCKS
SHOW LOCKS 명령은 리소스에 잠금(lock)을 보유한 모든 실행 중 트랜잭션 목록을 보여주는 명령이에요. 현재 사용자의 모든 세션 또는 계정의 모든 사용자에 대한 잠금을 표시할 수 있어요.
출처: 문서
본문
이 명령은 리소스에 잠금을 보유한 모든 실행 중 트랜잭션을 나열해요. 트랜잭션과 리소스 잠금에 대한 자세한 내용은 트랜잭션을 참고해요.
관련 명령: SHOW TRANSACTIONS.
구문 (Syntax)
SHOW LOCKS [ IN ACCOUNT ]
파라미터 (Parameters)
- IN ACCOUNT — 계정의 모든 사용자에 걸친 모든 잠금을 반환해요. 이 파라미터는 ACCOUNTADMIN 역할(계정 관리자) 사용자가 실행할 때만 적용돼요. 다른 모든 역할의 경우, 이 명령은 현재 사용자의 모든 세션에 걸친 잠금만 표시해요.
출력 (Output)
명령 출력은 잠금 메타데이터를 다음 컬럼으로 표시해요:
- resource — 완전 정규화된 테이블 이름 또는 트랜잭션 ID.
- type — 표준 테이블 잠금은
ROW, 하이브리드 테이블 잠금은PARTITIONS. - transaction — 트랜잭션 ID (부호 있는 64비트 정수).
- transaction_started_on — 트랜잭션이 실행을 시작한 시점을 지정하는 타임스탬프.
- status — 트랜잭션의 현재 상태:
HOLDING또는WAITING. - acquired_on — 잠금이 획득된 시점을 지정하는 타임스탬프.
- query_id — SQL 문의 내부/시스템 생성 식별자.
- session — 세션 ID (ACCOUNTADMIN 역할 사용자에게만 표시).
사용 참고 사항 (Usage notes)
- 명령 출력에는 리소스에 잠금을 보유한 모든 실행 중 트랜잭션의 ID가 포함돼요. 이 ID는 SYSTEM$ABORT_TRANSACTION의 입력으로 사용해 지정한 트랜잭션을 중단할 수 있어요.
- 하이브리드 테이블의 경우, 트랜잭션이 차단되었거나 다른 트랜잭션을 차단 중일 때만 잠금이 표시돼요.
- 실행에 실행 중인 웨어하우스를 요구하지 않아요.
- 현재 역할에 하나 이상의 접근 권한이 부여된 객체만 반환해요.
MANAGE GRANTS권한은 보유자가 계정의 모든 객체를 볼 수 있게 해줘요. 기본적으로 ACCOUNTADMIN과 SECURITYADMIN 역할만 이 권한을 가져요.- 출력을 후처리하려면 파이프 연산자(
|>) 또는RESULT_SCAN함수를 사용할 수 있어요. 출력 컬럼을 참조할 때는 컬럼 이름을 큰따옴표로 감싸서 사용해요. - 명령은 최대 1만 개의 레코드를 반환해요. 1만 개가 넘는 결과는 필터를 적용해도 반환되지 않아요.
예제 (Examples)
이 예에서 트랜잭션은 표준 테이블에 잠금을 보유하고 있어요:
SHOW LOCKS;
이 예에서 트랜잭션은 하이브리드 테이블에 행 수준 잠금을 보유하고 있고, 다른 트랜잭션이 그 잠금을 기다리고 있어요:
SHOW LOCKS;
더 알아보기 (Learn more)
- SHOW TRANSACTIONS — 트랜잭션 목록 조회
- 트랜잭션 — 트랜잭션·잠금 개념