SYS_QUERY_DETAIL - Amazon Redshift

SYS_QUERY_DETAIL

SYS_QUERY_DETAIL을 사용하여 단계 수준에서 쿼리에 대한 세부 정보를 봅니다. 각 행은 세부 정보가 포함된 특정 WLM 쿼리의 단계를 나타냅니다. 이 보기에는 DDL, DML 및 유틸리티 명령(예: 복사 및 언로드)과 같은 다양한 유형의 쿼리가 포함되어 있습니다. 일부 열은 쿼리 유형에 따라 관련이 없을 수 있습니다. 예를 들어, external_scanned_bytes는 내부 테이블과 관련이 없습니다.

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

테이블 열

열 명칭 데이터 유형 설명
user_id 정수 쿼리를 제출한 사용자의 식별자입니다.
query_id bigint 쿼리 식별자입니다.
child_query_sequence 정수 재작성된 사용자 쿼리의 순서입니다(1로 시작).
stream_id 정수 쿼리 스트림의 스트림 식별자입니다.
segment_id 정수 쿼리 실행 세그먼트의 세그먼트 식별자입니다.
step_id 정수 세그먼트의 단계 식별자입니다.
step_name 텍스트 세그먼트의 단계 이름입니다. 가능한 값은 aggregate, broadcast, delete, distribute, hash, hashjoin, insert, limit, merge, nestloop, parse, return, save, scan, sort, sortlimit, uniquewindow입니다.
table_id 정수 영구 테이블 스캔을 위한 테이블 식별자입니다.
table_name character(136) 작동 중인 단계의 테이블 이름입니다.
is_rrscan character 단계가 스캔 단계인지 여부를 나타내는 값입니다. True(t)는 범위 제한 스캔이 사용되었음을 나타냅니다.
start_time 타임스탬프 쿼리 단계가 시작된 시간입니다.
end_time 타임스탬프 쿼리 단계가 완료된 시간입니다.
duration bigint 단계에 소요된 시간(마이크로초)입니다.
알림 텍스트 알림 이벤트에 대한 설명입니다.
input_bytes bigint 현재 단계의 입력 바이트입니다.
input_rows bigint 현재 단계의 입력 바이트입니다.
output_bytes bigint 현재 단계의 출력 바이트입니다.
output_rows bigint 현재 단계의 출력 행입니다.
blocks_read bigint 단계에서 읽은 블록 수입니다.
blocks_write bigint 단계에서 작성한 블록 수입니다.
local_read_IO bigint 로컬 디스크 캐시의 블록 읽기 수입니다.
remote_read_IO bigint 원격에서 읽은 블록 수입니다.
source 텍스트 스캔한 데이터베이스 객체의 형식입니다. 이 열은 행의 step_name 값이 scan인 경우에만 값을 갖습니다.
data_skewness 정수 모든 단계 간의 출력 행 분포의 비대칭도입니다. 0%에서 100% 사이의 숫자입니다. 숫자가 클수록 분포가 더 불균형하다는 뜻입니다.
time_skewness 정수 모든 단계 간의 실행 시간 분포의 비대칭도입니다. 0%에서 100% 사이의 숫자입니다. 숫자가 클수록 분포가 더 불균형하다는 뜻입니다.
is_active character 단계 수준에서 쿼리의 상태입니다. 가능한 값은 단계가 현재 실행 중임을 나타내는 't'이거나 단계가 실행을 완료했음을 나타내는 'f'입니다.
spilled_block_local_disk bigint 로컬 디스크로 유출된 블록 수입니다.
spilled_block_remote_disk bigint Amazon Simple Storage Service에 유출된 블록 수입니다.
step_attribute character(64) 관련 단계에 대한 정보가 들어 있습니다. 스캔 단계에서 가능한 값: multi-dimensional.

샘플 쿼리

다음 예에서는 SYS_QUERY_DETAIL의 출력을 반환합니다.

다음 쿼리는 단계 이름, input_bytes, output_bytes, input_rows, output_rows 등 단계 수준의 쿼리 메타데이터 세부 정보를 보여줍니다.

SELECT query_id, child_query_sequence, stream_id, segment_id, step_id, trim(step_name) AS step_name, duration, input_bytes, output_bytes, input_rows, output_rows FROM sys_query_detail WHERE query_id IN (193929) ORDER BY query_id, stream_id, segment_id, step_id DESC;

샘플 출력은 다음과 같습니다.

query_id | child_query_sequence | stream_id | segment_id | step_id | step_name | duration | input_bytes | output_bytes | input_rows | output_rows ----------+----------------------+-----------+------------+---------+------------+-----------------+-------------+--------------+------------+------------- 193929 | 2 | 0 | 0 | 3 | hash | 37144 | 0 | 9350272 | 0 | 292196 193929 | 5 | 0 | 0 | 3 | hash | 9492 | 0 | 23360 | 0 | 1460 193929 | 1 | 0 | 0 | 3 | hash | 46809 | 0 | 9350272 | 0 | 292196 193929 | 4 | 0 | 0 | 2 | return | 7685 | 0 | 896 | 0 | 112 193929 | 1 | 0 | 0 | 2 | project | 46809 | 0 | 0 | 0 | 292196 193929 | 2 | 0 | 0 | 2 | project | 37144 | 0 | 0 | 0 | 292196 193929 | 5 | 0 | 0 | 2 | project | 9492 | 0 | 0 | 0 | 1460 193929 | 3 | 0 | 0 | 2 | return | 11033 | 0 | 14336 | 0 | 112 193929 | 2 | 0 | 0 | 1 | project | 37144 | 0 | 0 | 0 | 292196 193929 | 1 | 0 | 0 | 1 | project | 46809 | 0 | 0 | 0 | 292196 193929 | 5 | 0 | 0 | 1 | project | 9492 | 0 | 0 | 0 | 1460 193929 | 3 | 0 | 0 | 1 | aggregate | 11033 | 0 | 201488 | 0 | 14 193929 | 4 | 0 | 0 | 1 | aggregate | 7685 | 0 | 28784 | 0 | 14 193929 | 5 | 0 | 0 | 0 | scan | 9492 | 0 | 23360 | 292196 | 1460 193929 | 4 | 0 | 0 | 0 | scan | 7685 | 0 | 1344 | 112 | 112 193929 | 2 | 0 | 0 | 0 | scan | 37144 | 0 | 7304900 | 292196 | 292196 193929 | 3 | 0 | 0 | 0 | scan | 11033 | 0 | 13440 | 112 | 112 193929 | 1 | 0 | 0 | 0 | scan | 46809 | 0 | 7304900 | 292196 | 292196 193929 | 5 | 0 | 0 | -1 | | 9492 | 12288 | 0 | 0 | 0 193929 | 1 | 0 | 0 | -1 | | 46809 | 16384 | 0 | 0 | 0 193929 | 2 | 0 | 0 | -1 | | 37144 | 16384 | 0 | 0 | 0 193929 | 4 | 0 | 0 | -1 | | 7685 | 28672 | 0 | 0 | 0 193929 | 3 | 0 | 0 | -1 | | 11033 | 114688 | 0 | 0 | 0

데이터베이스의 테이블을 가장 많이 사용된 것부터 가장 적게 사용된 것까지 순서대로 보려면 다음 예제를 사용하세요. sample_data_dev를 사용자 데이터베이스로 바꿉니다. 이 쿼리는 클러스터가 생성된 시점부터 쿼리를 계산하지만, 데이터 웨어하우스에 공간이 부족한 경우 시스템 뷰 데이터는 저장되지 않습니다.

SELECT table_name, COUNT (DISTINCT query_id) FROM SYS_QUERY_DETAIL WHERE table_name LIKE 'sample_data_dev%' GROUP BY table_name ORDER BY COUNT(*) DESC; +---------------------------------+-------+ | table_name | count | +---------------------------------+-------+ | sample_data_dev.tickit.venue | 4 | | sample_data_dev.myunload1.venue | 3 | | sample_data_dev.tickit.listing | 1 | | sample_data_dev.tickit.category | 1 | | sample_data_dev.tickit.users | 1 | | sample_data_dev.tickit.date | 1 | | sample_data_dev.tickit.sales | 1 | | sample_data_dev.tickit.event | 1 | +---------------------------------+-------+