WLM 쿼리 대기열 건너뛰기 - Amazon Redshift

WLM 쿼리 대기열 건너뛰기

WLM 시간 제한 또는 쿼리 모니터링 규칙(QMR) 건너뛰기 작업으로 인해 쿼리를 건너뛸 수 있습니다. 수동 WLM 구성에서는 쿼리를 건너뛸 수만 있습니다.

쿼리를 건너뛰면 WLM은 WLM 대기열 할당 규칙을 기반으로 다음에 일치하는 대기열에 쿼리를 라우팅하려고 합니다. 쿼리가 다른 어떤 대기열 정의와도 일치하지 않는 경우, 쿼리가 취소됩니다. 쿼리는 기본 대기열에 할당되지 않습니다.

WLM 제한 시간 작업

다음 표에는 다양한 유형의 쿼리 동작과 WLM 제한 시간이 요약되어 있습니다.

쿼리 유형 작업
INSERT, UPDATE 및 DELETE 취소
사용자 정의 함수(UDF) 취소
UNLOAD 취소
COPY 실행 계속
유지 관리 작업 실행 계속
returning 상태의 읽기 전용 쿼리 실행 계속
running 상태의 읽기 전용 쿼리 다시 할당 또는 다시 시작
CREATE TABLE AS (CTAS), SELECT INTO 다시 할당 또는 다시 시작

WLM 제한 시간 대기열 건너뛰기

WLM은 시간이 초과될 때 다음 유형의 쿼리를 건너뜁니다.

  • WLM 상태가 running인 읽기 전용 쿼리(예: SELECT 문). 쿼리의 WLM 상태를 알고 싶다면 STV_WLM_QUERY_STATE 시스템 테이블에서 STATE 열을 확인하십시오.

  • CREATE TABLE AS(CTAS) 문. WLM 대기열 건너뛰기는 사용자 정의 CTAS 문과 시스템 생성 CTAS 문을 모두 지원합니다.

  • SELECT INTO 문

WLM 제한 시간이 적용되지 않는 쿼리는 완료될 때까지 원래 대기열에서 계속 실행됩니다. 다음 유형의 쿼리에는 WLM 제한 시간이 적용되지 않습니다.

  • COPY 문

  • 유지 관리 작업(예: ANALYZE 및 VACUUM)

  • returning WLM 상태에 도달한 읽기 전용 쿼리(예: SELECT 문). 쿼리의 WLM 상태를 알고 싶다면 STV_WLM_QUERY_STATE 시스템 테이블에서 STATE 열을 확인하십시오.

WLM 시간 제한에 따른 건너뛰기를 사용할 수 없는 쿼리는 시간이 초과될 때 취소됩니다. 다음 유형의 쿼리는 WLM 제한 시간에 따른 건너뛰기를 사용할 수 없습니다.

  • INSERT, UPDATE 및 DELETE 문

  • UNLOAD 문

  • 사용자 정의 함수(UDF)

WLM 제한 시간 다시 할당 및 다시 시작 쿼리

쿼리를 건너뛰고 일치하는 대기열을 찾을 수 없으면 쿼리가 취소됩니다.

쿼리를 건너뛰고 일치하는 대기열을 찾으면 WLM은 쿼리를 새 대기열에 다시 할당하려고 합니다. 쿼리를 다시 할당할 수 없으면 다음 설명과 같이 쿼리가 새 대기열에서 다시 시작됩니다.

다음이 모두 참인 경우에만 쿼리가 다시 할당됩니다.

  • 일치하는 대기열이 발견되었습니다.

  • 새로운 대기열에 쿼리를 실행할 수 있는 빈 슬롯이 있습니다. wlm_query_slot_count 파라미터를 1보다 큰 값으로 설정한 경우 한 쿼리에 여러 슬롯이 필요할 수 있습니다.

  • 새 대기열에서 최소한 쿼리가 현재 사용하는 것과 같은 양의 메모리를 사용할 수 있습니다.

쿼리를 다시 할당하면 쿼리는 새 대기열에서 실행을 계속합니다. 중간 결과가 보존되므로, 총 실행 시간에 대한 효과는 최소화됩니다.

쿼리를 다시 할당할 수 없으면 쿼리가 취소되고 새 대기열에서 다시 시작됩니다. 중가나 결과는 삭제됩니다. 쿼리는 대기열에서 대기한 다음 충분한 슬롯을 사용할 수 있을 때 실행을 시작합니다.

QMR 건너뛰기 작업

다음 표에는 다양한 유형의 쿼리 동작과 QMR 건너뛰기 작업이 요약되어 있습니다.

쿼리 유형 작업
COPY 실행 계속
유지 관리 작업 실행 계속
사용자 정의 함수(UDF) 실행 계속
UNLOAD 다시 할당 또는 실행 계속
INSERT, UPDATE 및 DELETE 다시 할당 또는 실행 계속
returning 상태의 읽기 전용 쿼리 다시 할당 또는 실행 계속
running 상태의 읽기 전용 쿼리 다시 할당 또는 다시 시작
CREATE TABLE AS (CTAS), SELECT INTO 다시 할당 또는 다시 시작

QMR에서 건너뛴 쿼리가 다시 할당되었는지, 다시 시작되었는지 또는 취소되었는지 알아보려면 STL_WLM_RULE_ACTION 시스템 로그 테이블을 쿼리합니다.

QMR 건너뛰기 작업 다시 할당 및 다시 시작 쿼리

쿼리를 건너뛰고 일치하는 대기열을 찾을 수 없으면 쿼리가 취소됩니다.

쿼리를 건너뛰고 일치하는 대기열을 찾으면 WLM은 쿼리를 새 대기열에 다시 할당하려고 합니다. 쿼리를 다시 할당할 수 없으면 다음 설명과 같이 쿼리가 새 대기열에서 다시 시작되거나 원래 대기열에서 실행을 계속합니다.

다음이 모두 참인 경우에만 쿼리가 다시 할당됩니다.

  • 일치하는 대기열이 발견되었습니다.

  • 새로운 대기열에 쿼리를 실행할 수 있는 빈 슬롯이 있습니다. wlm_query_slot_count 파라미터를 1보다 큰 값으로 설정한 경우 한 쿼리에 여러 슬롯이 필요할 수 있습니다.

  • 새 대기열에서 최소한 쿼리가 현재 사용하는 것과 같은 양의 메모리를 사용할 수 있습니다.

쿼리를 다시 할당하면 쿼리는 새 대기열에서 실행을 계속합니다. 중간 결과가 보존되므로, 총 실행 시간에 대한 효과는 최소화됩니다.

쿼리를 다시 할당할 수 없으면 쿼리가 다시 시작되거나 원래 대기열에서 실행을 계속합니다. 쿼리를 다시 시작하면 쿼리가 취소되고 새 대기열에서 다시 시작됩니다. 중가나 결과는 삭제됩니다. 쿼리는 대기열에서 대기한 다음 충분한 슬롯을 사용할 수 있을 때 실행을 시작합니다.