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 , unique 및 window 입니다. |
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 | +---------------------------------+-------+