SVV_QUERY_STATE - Amazon Redshift

SVV_QUERY_STATE

SVV_QUERY_STATE를 사용하여 현재 실행 중인 쿼리의 런타임에 관한 정보를 확인합니다.

SVV_QUERY_STATE 뷰에는 STV_EXEC_STATE 테이블의 데이터 하위 집합이 포함됩니다.

SVV_QUERY_STATE는 모든 사용자에게 표시됩니다. 수퍼유저는 모든 행을 볼 수 있지만 일반 사용자는 자체 데이터만 볼 수 있습니다. 자세한 내용은 시스템 테이블 및 뷰에 있는 데이터의 가시성 단원을 참조하십시오.

이 테이블의 데이터 중 일부 또는 전부는 SYS 모니터링 뷰인 SYS_QUERY_DETAIL에서도 찾아볼 수 있습니다. SYS 모니터링 뷰의 데이터는 사용 및 이해가 더 쉽도록 형식이 지정되어 있습니다. 쿼리에 SYS 모니터링 뷰를 사용하는 것이 좋습니다.

참고

이 보기는 프로비저닝된 클러스터를 쿼리할 때만 사용할 수 있습니다.

테이블 열

열 명칭 데이터 유형 설명
userid 정수 항목을 생성한 사용자의 ID.
쿼리 정수 쿼리 ID. 다양한 다른 시스템 테이블 및 보기를 조인하는 데 사용할 수 있습니다.
seg 정수 실행 중인 쿼리 세그먼트의 수. 하나의 쿼리는 여러 세그먼트로 구성되며, 각각의 세그먼트는 하나 이상의 단계로 구성됩니다. 쿼리 세그먼트는 병렬로 실행될 수 있습니다. 각 세그먼트는 단일 프로세스에서 실행됩니다.
step 정수 실행 중인 쿼리 단계의 수. 단계는 최소 쿼리 런타임 단위입니다. 각 단계는 테이블 스캔, 결과 반환 또는 데이터 정렬 같은 개별적 작업 단위를 나타냅니다.
maxtime interval 이 단계가 실행되기 위한 최대 시간(마이크로초)입니다.
avgtime interval 이 단계가 실행되기 위한 평균 시간(마이크로초)입니다.
rows bigint 실행 중인 단계에 의해 만들어진 행의 수.
bytes bigint 실행 중인 단계에 의해 만들어진 바이트의 수.
cpu bigint 내부용.
memory bigint 내부용.
rate_row double precision 쿼리가 시작된 이후의 초당 행 속도로서 행을 합산해 쿼리가 시작된 때부터 현재 시간까지의 초로 나누어 계산합니다.
rate_byte double precision 쿼리가 시작된 이후의 초당 바이트 속도로서 바이트를 합산해 쿼리가 시작된 때부터 현재 시간까지의 초로 나누어 계산합니다.
레이블 character(25) 쿼리 레이블: scan 또는 sort와 같은 단계의 이름.
is_diskbased character(1) 쿼리의 이 단계가 디스크 기반 작업으로 실행 중인지 여부: true(t) 또는 false(f). 해시, 정렬, 집계 단계 같은 특정 단계만 디스크로 갈 수 있습니다. 많은 단계 형식은 항상 메모리에서 수행됩니다.
workmem bigint 쿼리 단계에 할당된 작업 메모리의 양(바이트)입니다.
num_parts 정수 해시 단계 도중 해시 테이블이 분할되는 파티션의 수. 이 열의 양수는 해시 단계가 디스크 기반 작업으로 실행되었음을 뜻하지 않습니다. 해시 단계가 디스크 기반인지 확인하려면 IS_DISKBASED 열의 값을 확인합니다.
is_rrscan character(1) true(t)인 경우, 단계에서 범위 제한 스캔이 사용되었음을 나타냅니다. 기본값은 false(f)입니다.
is_delayed_scan character(1) true(t)인 경우, 단계에서 지연된 스캔이 사용되었음을 나타냅니다. 기본값은 false(f)입니다.

샘플 쿼리

단계별 쿼리 처리 시간 확인

다음 쿼리는 쿼리 ID 279인 쿼리의 각 단계가 실행되는 데 걸린 시간과 Amazon Redshift가 처리한 데이터 행의 수를 보여줍니다.

select query, seg, step, maxtime, avgtime, rows, label from svv_query_state where query = 279 order by query, seg, step;

이 쿼리는 다음 샘플 출력에서 보듯 쿼리 279에 대한 처리 정보를 검색합니다.

query | seg | step | maxtime | avgtime | rows | label ------+---------+------+---------+---------+---------+------------------- 279 | 3 | 0 | 1658054 | 1645711 | 1405360 | scan 279 | 3 | 1 | 1658072 | 1645809 | 0 | project 279 | 3 | 2 | 1658074 | 1645812 | 1405434 | insert 279 | 3 | 3 | 1658080 | 1645816 | 1405437 | distribute 279 | 4 | 0 | 1677443 | 1666189 | 1268431 | scan 279 | 4 | 1 | 1677446 | 1666192 | 1268434 | insert 279 | 4 | 2 | 1677451 | 1666195 | 0 | aggr (7 rows)

디스크에서 현재 실행 중인 활성 쿼리가 있는지 확인

다음 쿼리는 디스크에서 현재 실행 중인 활성 쿼리가 있는지 보여 줍니다.

select query, label, is_diskbased from svv_query_state where is_diskbased = 't';

이 샘플 출력은 디스크에서 현재 실행 중인 모든 활성 쿼리를 보여 줍니다.

query | label | is_diskbased -------+--------------+-------------- 1025 | hash tbl=142 | t (1 row)