QUERY_HISTORY 뷰¶
이 Account Usage 뷰는 지난 365일(1년) 내 다양한 차원(시간 범위, 세션, 사용자, 웨어하우스 등)별로 Snowflake 쿼리 기록을 쿼리하는 데 사용할 수 있습니다.
이 뷰는 ACCOUNT_USAGE 및 READER_ACCOUNT_USAGE 스키마 모두에서 사용할 수 있으며 다음과 같은 차이점이 있습니다.
다음 열은 오직 독자 계정 뷰에서만 사용할 수 있습니다.
READER_ACCOUNT_NAME
READER_ACCOUNT_DELETED_ON
또는 QUERY_HISTORY로도 명명된 Information Schema 테이블 함수를 호출할 수 있지만, 이 테이블 함수는 결과를 지난 7일간의 활동으로 제한하는 반면에 Account Usage 뷰의 경우 365일간의 활동을 표시합니다. QUERY_HISTORY 함수에 대한 설명 을 참조하십시오.
참고 항목:
쿼리 기록으로 쿼리 활동 모니터링하기 (Snowsight 대시보드)
열¶
다음 테이블의 Available only in reader account usage views 열은 QUERY_HISTORY 열을 READER_ACCOUNT_USAGE 스키마에서 사용할 수 있는지 여부를 나타냅니다.
열 이름 |
데이터 타입 |
설명 |
Available only in reader account usage views |
---|---|---|---|
|
VARCHAR |
SQL 문이 실행된 독자 계정의 이름입니다. |
✔ |
|
VARCHAR |
SQL 문의 내부/시스템 생성 식별자입니다. |
✔ |
|
VARCHAR |
SQL 문의 텍스트입니다. 한도는 100K자입니다. 100K자를 초과하는 SQL 문은 잘립니다. |
|
|
NUMBER |
사용 중이었던 데이터베이스의 내부/시스템 생성 식별자입니다. |
✔ |
|
VARCHAR |
컴파일 시 쿼리 컨텍스트에 지정된 데이터베이스입니다. |
✔ |
|
NUMBER |
사용 중이었던 스키마의 내부/시스템 생성 식별자입니다. |
✔ |
|
VARCHAR |
컴파일 시 쿼리 컨텍스트에 지정된 스키마입니다. |
✔ |
|
VARCHAR |
DML, 쿼리 등입니다. 쿼리가 실패한 경우, 쿼리 유형이 UNKNOWN 일 수 있습니다. |
|
|
NUMBER |
문을 실행한 세션입니다. |
✔ |
|
VARCHAR |
쿼리를 실행한 사용자입니다. |
|
|
VARCHAR |
쿼리 당시 세션에서 활성 상태였던 역할입니다. |
✔ |
|
NUMBER |
사용된 웨어하우스의 내부/시스템 생성 식별자입니다. |
✔ |
|
VARCHAR |
쿼리가 실행된 웨어하우스입니다(있는 경우). |
✔ |
|
VARCHAR |
이 문이 실행될 때 웨어하우스의 크기입니다. |
✔ |
|
VARCHAR |
이 문이 실행될 때 웨어하우스의 유형입니다. |
✔ |
|
NUMBER |
이 문이 실행된 클러스터(다중 클러스터 웨어하우스 내)입니다. |
✔ |
|
VARCHAR |
QUERY_TAG 세션 매개 변수를 통해 이 문에 대해 설정된 쿼리 태그입니다. |
✔ |
|
VARCHAR |
쿼리의 실행 상태. 유효한 값: |
✔ |
|
NUMBER |
쿼리가 오류를 반환한 경우 오류 코드입니다. |
✔ |
|
VARCHAR |
쿼리가 오류를 반환한 경우 오류 메시지입니다. |
✔ |
|
TIMESTAMP_LTZ |
문 시작 시간(현지 타임존)입니다. |
✔ |
|
TIMESTAMP_LTZ |
문 종료 시간(현지 타임존)입니다. |
✔ |
|
NUMBER |
경과 시간(밀리초)입니다. |
✔ |
|
NUMBER |
이 문이 스캔한 바이트 수입니다. |
✔ |
|
FLOAT |
로컬 디스크 캐시에서 스캔한 데이터의 백분율입니다. 값의 범위는 0.0에서 1.0입니다. 실제 백분율을 얻으려면 100을 곱하십시오. |
|
|
NUMBER |
작성된 바이트 수입니다(예: 테이블에 로딩될 때). |
|
|
NUMBER |
결과 오브젝트에 작성된 바이트 수입니다. 예를 들어, |
|
|
NUMBER |
결과 오브젝트에서 읽은 바이트 수입니다. |
|
|
NUMBER |
이 문이 생성한 행 수입니다. ROWS_PRODUCED 열은 향후 릴리스에서 더 이상 사용되지 않습니다. ROWS_PRODUCED 열의 값이 항상 쿼리의 영향을 받는 논리적 행 수를 반영하는 것은 아닙니다. ROWS_INSERTED, ROWS_UPDATED, ROWS_WRITTEN_TO RESULTS 또는 ROWS_DELETED 열을 사용하는 것이 좋습니다. |
✔ |
|
NUMBER |
쿼리가 삽입한 행 수입니다. |
|
|
NUMBER |
쿼리가 업데이트한 행 수입니다. |
|
|
NUMBER |
쿼리가 삭제한 행 수입니다. |
|
|
NUMBER |
데이터 내보내기 중 언로딩된 행 수입니다. |
|
|
NUMBER |
쿼리가 삭제한 바이트 수입니다. |
|
|
NUMBER |
스캔한 마이크로 파티션의 수입니다. |
|
|
NUMBER |
이 쿼리에 포함된 모든 테이블의 총 마이크로 파티션입니다. |
|
|
NUMBER |
로컬 디스크로 유출된 데이터의 볼륨입니다. |
|
|
NUMBER |
원격 디스크로 유출된 데이터의 볼륨입니다. |
|
|
NUMBER |
네트워크를 통해 전송된 데이터의 볼륨입니다. |
|
|
NUMBER |
컴파일 시간(밀리초)입니다. |
✔ |
|
NUMBER |
실행 시간(밀리초)입니다. |
✔ |
|
NUMBER |
웨어하우스 큐에서 소요된 시간(밀리초)으로, 웨어하우스 생성, 재개 또는 크기 조정으로 인해 웨어하우스 컴퓨팅 리소스가 프로비저닝되기를 기다리는 데 걸린 시간입니다. |
✔ |
|
NUMBER |
웨어하우스 큐에서 소요된 시간(밀리초)으로, 웨어하우스의 컴퓨팅 리소스가 복구되기를 기다리는 데 걸린 시간입니다. |
✔ |
|
NUMBER |
현재 쿼리 워크로드로 인해 웨어하우스가 오버로드되어 웨어하우스 큐에서 소요된 시간(밀리초)입니다. |
✔ |
|
NUMBER |
동시 DML에 의해 차단된 시간(밀리초)입니다. |
✔ |
|
VARCHAR |
데이터를 다른 리전 및/또는 클라우드로 언로딩하는 문에 대한 대상 클라우드 공급자입니다. |
✔ |
|
VARCHAR |
데이터를 다른 리전 및/또는 클라우드로 언로딩하는 문에 대한 대상 리전입니다. |
✔ |
|
NUMBER |
Snowflake 테이블에서 데이터를 언로드하는 명령에서 전송된 바이트 수입니다. |
✔ |
|
VARCHAR |
데이터를 다른 리전 및/또는 클라우드에서 로딩하는 문에 대한 소스 클라우드 공급자입니다. |
✔ |
|
VARCHAR |
데이터를 다른 리전 및/또는 클라우드에서 로딩하는 문에 대한 소스 리전입니다. |
✔ |
|
NUMBER |
다른 계정에서 복제 작업으로 전송된 바이트 수입니다. 원본 계정은 현재 계정과 동일한 리전에 있을 수도 있고 다른 리전에 있을 수도 있습니다. |
✔ |
|
NUMBER |
외부 파일을 나열하는 데 소요된 시간(밀리초)입니다. |
|
|
NUMBER |
클라우드 서비스에 사용된 크레딧 수입니다. 이 값은 클라우드 서비스 조정 을 고려하지 않으므로 청구되는 크레딧보다 클 수 있습니다. 실제로 청구된 크레딧 수를 확인하려면 METERING_DAILY_HISTORY 뷰 에 대해 쿼리를 실행하십시오. |
✔ |
|
TIMESTAMP_LTZ |
독자 계정이 삭제된 시간 및 날짜(UTC 타임존 기준)입니다. |
✔ |
|
VARCHAR |
|
|
|
NUMBER |
이 쿼리가 원격 서비스를 호출한 총 횟수입니다. 중요한 세부 정보는 사용법 노트를 참조하십시오. |
|
|
NUMBER |
이 쿼리가 모든 원격 서비스에 대한 모든 호출에서 보낸 총 행 수입니다. |
|
|
NUMBER |
이 쿼리가 모든 원격 서비스에 대한 모든 호출에서 수신한 총 행 수입니다. |
|
|
NUMBER |
이 쿼리가 모든 원격 서비스에 대한 모든 호출에서 보낸 총 바이트 수입니다. |
|
|
NUMBER |
이 쿼리가 모든 원격 서비스에 대한 모든 호출에서 수신한 총 바이트 수입니다. |
|
|
NUMBER |
이 쿼리 실행을 위해 웨어하우스에 있는 활성 컴퓨팅 리소스의 대략적인 백분율입니다. |
|
|
BOOLEAN |
쿼리가 클라이언트에서 생성되었는지 여부를 나타냅니다. |
|
|
NUMBER |
쿼리 가속 서비스 에서 스캔한 바이트의 수입니다. |
|
|
NUMBER |
쿼리 가속 서비스에서 스캔한 파티션의 수입니다. |
|
|
NUMBER |
쿼리가 혜택을 받았을 상한 배율 입니다. |
|
|
NUMBER |
문이 트랜잭션 내에서 실행되지 않는 경우 문 또는 0을 포함하는 트랜잭션의 ID 입니다. |
|
|
NUMBER |
메모이제이션 가능 함수 를 호출할 때 캐시된 조회 완료에 걸리는 시간(밀리초)입니다. |
|
|
VARCHAR |
쿼리를 실행한 APPLICATION, DATABASE_ROLE 또는 ROLE 을 지정합니다. |
|
|
VARCHAR |
표준화된 SQL 텍스트를 기반으로 계산된 해시 값 입니다. |
|
|
NUMBER |
|
|
|
VARCHAR |
매개 변수가 있는 쿼리를 기반으로 계산된 해시 값 입니다. |
|
|
NUMBER |
|
|
|
VARCHAR |
쿼리에서 평가된 보조 역할에 관한 3개의 필드(세션에 따른 보조 역할 목록 또는 |
|
|
NUMBER |
결과 오브젝트에 작성된 행 수입니다. CREATE TABLE AS SELECT(CTAS) 및 모든 DML 작업의 경우 이 결과는 |
|
|
NUMBER |
실행 가능한 오류로 인해 발생한 쿼리 재시도의 총 실행 시간(밀리초)입니다. 자세한 내용은 쿼리 재시도 열 을 참조하십시오. |
|
|
VARIANT |
실행 가능한 오류에 대한 오류 메시지 배열입니다. 배열에는 각 쿼리 재시도에 대한 하나의 오류 메시지가 포함됩니다. 쿼리 재시도가 없으면 배열은 비어 있습니다. 자세한 내용은 쿼리 재시도 열 을 참조하십시오. |
|
|
NUMBER |
실행 가능하지 않은 오류로 인해 발생한 쿼리 재시도의 총 실행 시간(밀리초)입니다. 자세한 내용은 쿼리 재시도 열 을 참조하십시오. |
사용법 노트¶
일반¶
뷰의 지연 시간은 최대 45분입니다.
EXTERNAL_FUNCTION_TOTAL_INVOCATIONS, EXTERNAL_FUNCTION_TOTAL_SENT_ROWS, EXTERNAL_FUNCTION_TOTAL_RECEIVED_ROWS, EXTERNAL_FUNCTION_TOTAL_SENT_BYTES, EXTERNAL_FUNCTION_TOTAL_RECEIVED_BYTES 열의 값은 다음을 비롯한 여러 요인의 영향을 받습니다.
SQL 문에 있는 외부 함수의 수입니다.
각 원격 서비스에 보낸 배치당 행 수입니다.
일시적인 오류(예: 예상 시간 내에 응답이 수신되지 않았기 때문)로 인한 재시도 횟수입니다.
쿼리 재시도 열¶
성공적으로 완료하려면 쿼리를 한 번 이상 다시 시도해야 할 수도 있습니다. 쿼리 재시도가 발생하는 원인은 여러 가지 있을 수 있습니다. 이러한 원인 중 일부는 실행 가능 합니다. 즉, 사용자가 특정 쿼리에 대한 쿼리 재시도를 줄이거나 없애기 위해 변경할 수 있습니다. 예를 들어 메모리 부족 오류로 인해 쿼리를 다시 시도하는 경우 웨어하우스 설정을 수정하면 문제가 해결될 수 있습니다.
일부 쿼리 재시도는 실행 불가능한 오류로 인해 발생합니다. 즉, 쿼리 재시도를 방지하기 위해 사용자가 변경할 수 있는 것이 없습니다. 예를 들어 네트워크 중단으로 인해 쿼리가 다시 시도될 수 있습니다. 이 경우 쿼리 재시도를 방해할 수 있는 쿼리 또는 쿼리를 실행하는 웨어하우스에는 변경 사항이 없습니다.
QUERY_RETRY_TIME, QUERY_RETRY_CAUSE 및 FAULT_HANDLING_TIME 열은 재시도되는 쿼리를 최적화하고 쿼리 성능의 변동을 더 잘 이해하는 데 도움이 될 수 있습니다.
하이브리드 테이블¶
다음 지침은 QUERY_HISTORY 뷰를 사용하는 동안 하이브리드 테이블에 대해 쿼리를 실행하는 것에 관한 지침입니다.
하이브리드 테이블에 대해서만 작동하는 단기 실행 쿼리는 더 이상 이 뷰 또는 QUERY_HISTORY (Information Schema 테이블 함수)에 레코드를 생성하지 않습니다. 이러한 쿼리를 모니터링하려면 AGGREGATE_QUERY_HISTORY 를 사용하십시오. 이 뷰를 사용하면 추세와 문제에 대한 처리량이 높은 운영 워크로드를 더 쉽게 모니터링할 수 있습니다.
하이브리드 테이블에 대해서만 독점적으로 작동하는 단기 실행 쿼리도 Snowsight 에서 검사할 수 있는 쿼리 프로필을 더 이상 제공하지 않습니다.
다음 조건 중 하나라도 충족되면 하이브리드 테이블에 대한 쿼리는 QUERY_HISTORY 뷰에 레코드와 쿼리 프로필을 생성합니다.
하이브리드 테이블 타입이 아닌 모든 테이블 유형에 대해 쿼리가 실행됩니다. 이 조건은 기존의 비 Unistore 워크로드에 대한 동작 변경이 없음을 보장합니다.
failed_with_incident
의 EXECUTION_STATUS로 인해 쿼리가 실패합니다(QUERY_HISTORY 참조). 이 조건으로 실패한 특정 쿼리를 조사하고 보고하여 지원을 받을 수 있도록 보장합니다.쿼리가 약 500밀리초 이상 실행 중입니다. 이 조건으로 느린 쿼리의 성능 문제를 조사할 수 있도록 보장합니다.
쿼리 결과 크기가 너무 큽니다.
쿼리가 Snowflake 트랜잭션과 연결됩니다.
쿼리에 부작용이 있는 시스템 함수가 포함되어 있습니다.
쿼리가 SELECT, INSERT, DELETE, UPDATE, MERGE 문 유형 중 하나가 아닙니다.
쿼리가 SnowSQL, Snowsight 또는 Classic Console에서 실행됩니다. 이 조건으로 전체 쿼리 프로필을 수동으로 생성하여 특정 쿼리가 장기 실행으로 분류되지 않은 경우에도 특정 쿼리에 대한 성능 문제를 조사할 수 있도록 보장합니다.
쿼리가 위의 기준을 충족하지 않는 경우에도 쿼리를 주기적으로 샘플링하여 QUERY_HISTORY 뷰 및 쿼리 프로필에 레코드를 생성하여 조사에 도움을 줄 수도 있습니다.
PUT 및 GET 명령¶
PUT 및 GET 명령의 경우 QUERY_HISTORY 에서 success
의 EXECUTION_STATUS가 데이터 파일이 성공적으로 업로드되거나 다운로드되었다는 것을 의미하지 않습니다. 대신, 이 상태는 Snowflake가 파일 전송을 진행하기 위한 승인을 받았음을 나타냅니다.