SHOW LOCKS¶
리소스에 대한 잠금이 있는 실행 중인 트랜잭션을 전부 나열합니다. 이 명령을 사용해 모든 사용자 세션의 현재 사용자 또는 계정의 모든 사용자에 대한 잠금을 표시할 수 있습니다.
트랜잭션 및 리소스 잠금에 대한 자세한 내용은 트랜잭션 을 참조하십시오.
- 참고 항목:
구문¶
SHOW LOCKS [ IN ACCOUNT ]
매개 변수¶
IN ACCOUNT
계정의 모든 사용자에 대한 모든 잠금을 반환합니다. 이 매개 변수는 ACCOUNTADMIN 역할을 사용하는 사용자(계정 관리자)가 실행할 때만 적용됩니다.
다른 모든 역할의 경우 이 함수는 현재 사용자의 모든 세션에 대한 잠금만 표시합니다.
출력¶
명령 출력에서는 다음 열의 잠금 메타데이터가 표시됩니다.
열 |
설명 |
---|---|
|
정규화된 테이블 이름 또는 트랜잭션 ID입니다. |
|
|
|
트랜잭션 ID(부호 있는 64비트 정수)입니다. |
|
트랜잭션이 실행을 시작한 시점을 지정하는 타임스탬프입니다. |
|
트랜잭션의 현재 상태: |
|
잠금이 획득된 시점을 지정하는 타임스탬프입니다. |
|
SQL 문의 내부/시스템 생성 식별자입니다. |
|
세션 ID(ACCOUNTADMIN 역할이 있는 사용자에게만 표시됨)입니다. |
사용법 노트¶
접두사
is_
로 시작하는 열은Y
(예) 또는N
(아니요)을 반환합니다.이 명령을 실행하기 위해 실행 중인 웨어하우스가 꼭 필요하지는 않습니다.
이 명령은 명령을 실행하는 데 사용되는 역할에 대한 액세스 권한에 따라 지정된 오브젝트 유형에 대해 최대 10,000개의 레코드를 반환합니다. 필터가 적용된 경우에도 10,000개의 제한을 초과하는 레코드는 반환되지 않습니다.
10,000개 이상의 레코드가 존재하는 결과를 보려면 Snowflake Information Schema 에서 해당 뷰(있는 경우)를 쿼리하십시오.
이 명령의 출력을 사후 처리하려면 출력을 쿼리할 수 있는 테이블로 처리하는 RESULT_SCAN 함수를 사용하면 됩니다.
명령 출력은 리소스에 대한 잠금이 있는 실행 중인 모든 트랜잭션에 대한 IDs를 포함합니다. 이러한 IDs는 지정된 트랜잭션을 중단하기 위해 SYSTEM$ABORT_TRANSACTION 의 입력값으로 사용할 수 있습니다.
하이브리드 테이블의 경우 이 명령은 트랜잭션이 차단되거나 다른 트랜잭션을 차단 중인 경우에만 잠금을 표시합니다.
예¶
다음 예에서 트랜잭션은 지정된 표준 테이블(resource
열에서 이름이 지정된 테이블)에 대한 잠금을 보유하고 있습니다.
SHOW LOCKS;
+---------------------------+------------+---------------------+-------------------------------+---------+-------------------------------+--------------------------------------+
| resource | type | transaction | transaction_started_on | status | acquired_on | query_id |
|---------------------------+------------+---------------------+-------------------------------+---------+-------------------------------+--------------------------------------|
| CALIBAN_DB.PUBLIC.WEATHER | PARTITIONS | 1721330303831000000 | 2024-07-18 12:18:23.831 -0700 | HOLDING | 2024-07-18 12:18:49.832 -0700 | 01b5c1c6-0002-8691-0000-a9950068a0c6 |
+---------------------------+------------+---------------------+-------------------------------+---------+-------------------------------+--------------------------------------+
다음 예에서 트랜잭션은 하이브리드 테이블에 대한 행 수준 잠금을 보유하고 있습니다. 또 다른 트랜잭션이 해당 잠금을 기다리고 있습니다.
SHOW LOCKS;
+---------------------+------+---------------------+-------------------------------+---------+-------------+--------------------------------------+
| resource | type | transaction | transaction_started_on | status | acquired_on | query_id |
|---------------------+------+---------------------+-------------------------------+---------+-------------+--------------------------------------|
| 1721165584820000000 | ROW | 1721165584820000000 | 2024-07-16 14:33:04.820 -0700 | HOLDING | NULL | |
| 1721165584820000000 | ROW | 1721165674582000000 | 2024-07-16 14:34:34.582 -0700 | WAITING | NULL | 01b5b715-0002-852b-0000-a99500665352 |
+---------------------+------+---------------------+-------------------------------+---------+-------------+--------------------------------------+