STL_QUERY - Amazon Redshift

STL_QUERY

데이터베이스 쿼리에 대한 실행 정보를 반환합니다.

참고

STL_QUERY 및 STL_QUERYTEXT 뷰에는 기타 유틸리티나 DDL 명령이 아닌 쿼리 정보만 저장됩니다. Amazon Redshift에서 실행되는 모든 문에 대한 목록 및 정보는 STL_DDLTEXT 보기와 STL_UTILITYTEXT 보기에 대한 쿼리를 실행하여 확인할 수 있습니다. Amazon Redshift에서 실행되는 모든 문에 대한 전체 목록은 SVL_STATEMENTTEXT 보기에 대한 쿼리를 실행하여 확인할 수 있습니다.

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

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

테이블 열

열 명칭 데이터 유형 설명
userid 정수 항목을 생성한 사용자의 ID.
쿼리 정수 쿼리 ID. 쿼리 열을 사용하여 다른 시스템 테이블 및 보기를 조인할 수 있습니다.
레이블 character(320) 쿼리 실행에 사용되는 파일의 이름 또는 SET QUERY_GROUP 명령을 사용하여 정의되는 레이블. 쿼리가 파일 기반이 아니거나 QUERY_GROUP 파라미터가 설정되지 않은 경우, 이 필드의 값은 default입니다.
xid bigint 트랜잭션 ID.
pid 정수 프로세스 ID. 일반적으로 한 세션의 모든 쿼리는 동일 프로세스에서 실행됩니다. 따라서 동일 세션에서 일련의 쿼리를 실행하는 경우에는 이 값은 대부분 같은 값을 유지합니다. Amazon Redshift는 특정한 내부 이벤트 이후에 활성 세션을 다시 시작하고 새 PID를 할당할 수도 있습니다. 자세한 내용은 STL_RESTARTED_SESSIONS 단원을 참조하십시오.
데이터베이스 character(32) 쿼리가 실행되었을 때 사용자가 연결된 데이터베이스의 이름.
querytxt character(4000) 실제 쿼리 텍스트
starttime 타임스탬프 쿼리 시작 시간(UTC) 총 시간에는 대기 및 실행이 포함되며 소수점 이하 자릿수는 6자리입니다. 예: 2009-06-12 11:29:19.131358.
endtime 타임스탬프 쿼리가 완료된 시간(UTC)입니다. 총 시간에는 대기 및 실행이 포함되며 소수점 이하 자릿수는 6자리입니다. 예: 2009-06-12 11:29:19.131358.
aborted 정수 쿼리가 시스템에 의해 중지되거나 사용자에 의해 취소되는 경우, 이 열에 1이 포함됩니다. 쿼리를 끝까지 실행한 경우에는(클라이언트에게 결과를 반환하는 단계까지 포함) 이 열에 0이 포함됩니다. 결과가 수신되기 전에 클라이언트 연결이 끊어지면 쿼리가 백엔드에서 성공적으로 완료되더라도 취소됨(1)으로 표시됩니다.
insert_pristine 정수 현재 쿼리를 지금/이전에 실행했을 때 쓰기 쿼리를 지금/이전에 실행할 수 있는 여부입니다. 1 = 쓰기 쿼리가 허용되지 않음. 0 = 쓰기 쿼리가 허용됨. 이 열은 디버깅 시 사용하도록 되어 있습니다.
concurrency_scaling_status 정수

쿼리가 기본 클러스터에서 실행되었는지 아니면 동시성 확장 클러스터에서 실행되었는지를 나타냅니다. 가능한 값은 다음과 같습니다.

0 - 기본 클러스터에서 실행되었습니다.

1 - 동시성 확장 클러스터에서 실행되었습니다.

1보다 큼 - 기본 클러스터에서 실행되었습니다.

샘플 쿼리

다음은 가장 최근 쿼리 5개를 나열하는 쿼리입니다.

select query, trim(querytxt) as sqlquery from stl_query order by query desc limit 5; query | sqlquery ------+-------------------------------------------------- 129 | select query, trim(querytxt) from stl_query order by query; 128 | select node from stv_disk_read_speeds; 127 | select system_status from stv_gui_status 126 | select * from systable_topology order by slice 125 | load global dict registry (5 rows)

다음은 2013년 2월 15일에 실행한 쿼리의 경과 시간을 내림차순으로 반환하는 쿼리입니다.

select query, datediff(seconds, starttime, endtime), trim(querytxt) as sqlquery from stl_query where starttime >= '2013-02-15 00:00' and endtime < '2013-02-16 00:00' order by date_diff desc; query | date_diff | sqlquery -------+-----------+------------------------------------------- 55 | 119 | padb_fetch_sample: select count(*) from category 121 | 9 | select * from svl_query_summary; 181 | 6 | select * from svl_query_summary where query in(179,178); 172 | 5 | select * from svl_query_summary where query=148; ... (189 rows)

다음 쿼리는 쿼리에 대한 대기열 시간 및 실행 시간을 보여줍니다. 동시성 확장 클러스터에서 실행된 concurrency_scaling_status = 1의 쿼리입니다. 기본 클러스터에서 실행된 다른 모든 쿼리입니다.

SELECT w.service_class AS queue , q.concurrency_scaling_status , COUNT( * ) AS queries , SUM( q.aborted ) AS aborted , SUM( ROUND( total_queue_time::NUMERIC / 1000000,2 ) ) AS queue_secs , SUM( ROUND( total_exec_time::NUMERIC / 1000000,2 ) ) AS exec_secs FROM stl_query q JOIN stl_wlm_query w USING (userid,query) WHERE q.userid > 1 AND service_class > 5 AND q.starttime > '2019-03-01 16:38:00' AND q.endtime < '2019-03-01 17:40:00' GROUP BY 1,2 ORDER BY 1,2;