스키마:

ACCOUNT_USAGE

COLUMN_QUERY_PRUNING_HISTORY 뷰

이 Account Usage 뷰를 사용하면 쿼리가 실행하는 동안 “액세스 유형” 및 잠재적으로 유익한 후보 검색 최적화 식 과 같은 일부 열 수준 세부 정보를 포함한 데이터 액세스 패턴을 더 잘 이해할 수 있습니다.

이 뷰는 TABLE_QUERY_PRUNING_HISTORY 뷰 와 함께 사용할 수 있습니다. 예를 들어, TABLE_QUERY_PRUNING_HISTORY 뷰를 사용하여 대상 테이블에 대한 액세스를 식별한 다음, COLUMN_QUERY_PRUNING_HISTORY 뷰를 사용하여 해당 테이블에서 자주 사용되는 열을 식별할 수 있습니다.

이 뷰의 각 행은 주어진 시간 간격 내에서 특정 열에 대한 쿼리 정리 기록을 나타냅니다. 데이터는 열, 테이블, 간격별로 집계되며 실행된 쿼리 수, 스캔된 파티션, 정리된 파티션, 스캔된 행, 정리된 행, 일치하는 행 수와 같은 메트릭이 포함됩니다.

TABLE_PRUNING_HISTORY 뷰쿼리 정리 섹션도 참조하세요.

열 이름

데이터 타입

설명

INTERVAL_START_TIME

TIMESTAMP_LTZ

쿼리가 실행되고 완료된 시간 범위(시간 표시)의 시작입니다.

INTERVAL_END_TIME

TIMESTAMP_LTZ

쿼리가 실행되고 완료된 시간 범위(시간 표시)의 끝입니다.

TABLE_ID

NUMBER

쿼리된 테이블의 내부/시스템 생성 식별자입니다.

TABLE_NAME

VARCHAR

쿼리된 테이블의 이름입니다.

SCHEMA_ID

NUMBER

쿼리된 테이블을 포함하는 스키마에 대한 내부/시스템 생성 식별자입니다.

SCHEMA_NAME

VARCHAR

쿼리된 테이블을 포함하는 스키마의 이름입니다.

DATABASE_ID

NUMBER

쿼리된 테이블을 포함하는 데이터베이스의 내부/시스템 생성 식별자입니다.

DATABASE_NAME

VARCHAR

쿼리된 테이블을 포함하는 데이터베이스의 이름입니다.

WAREHOUSE_ID

NUMBER

쿼리를 실행하는 데 사용된 웨어하우스의 내부/시스템 생성 식별자입니다.

WAREHOUSE_NAME

VARCHAR

쿼리를 실행한 웨어하우스의 이름입니다.

QUERY_HASH

VARCHAR

표준화된 SQL 텍스트를 기반으로 계산된 해시 값 입니다.

QUERY_PARAMETERIZED_HASH

VARCHAR

매개 변수가 있는 쿼리를 기반으로 계산된 해시 값 입니다.

COLUMN_ID

NUMBER

쿼리된 테이블에서 액세스한 열의 내부/시스템 생성 식별자입니다.

COLUMN_NAME

VARCHAR

쿼리된 테이블에서 액세스한 열의 이름입니다.

VARIANT_PATH

VARCHAR

액세스 중인 반정형 데이터의 경로입니다(해당되는 경우). 액세스한 열에 반정형 데이터 타입이 없는 경우 NULL입니다.

ACCESS_TYPE

VARCHAR

열에서 수행되는 액세스 유형(WHERE 또는 JOIN 조건)입니다.

NUM_QUERIES

NUMBER

이 특정 QUERY_HASH 값을 포함하고, 이 웨어하우스를 사용하며, 이 액세스 유형의 이 테이블에 있는 이 열(및 해당되는 경우 베리언트 경로)에 액세스하는, 이 시간 범위에서 실행된 쿼리 수입니다.

AGGREGATE_QUERY_ELAPSED_TIME

NUMBER

NUM_QUERIES로 정의된 쿼리의 총 경과 시간(밀리초)입니다. 이 합계에는 컴파일 및 실행과 관련되지 않은 큐 대기 시간 및 기타 시간이 포함됩니다.

AGGREGATE_QUERY_COMPILATION_TIME

NUMBER

NUM_QUERIES로 정의된 쿼리의 총 컴파일 시간(밀리초)입니다.

AGGREGATE_QUERY_EXECUTION_TIME

NUMBER

NUM_QUERIES로 정의된 쿼리의 총 실행 시간(밀리초)입니다.

PARTITIONS_SCANNED

NUMBER

NUM_QUERIES로 정의된 쿼리에 대해 이 테이블에서 스캔한 파티션 수입니다.

PARTITIONS_PRUNED

NUMBER

NUM_QUERIES로 정의된 쿼리에 대해 이 테이블에서 정리된 파티션 수입니다. 이러한 파티션은 쿼리 처리 중에 제거되고 스캔되지 않아 쿼리 효율성이 향상되었습니다.

ROWS_SCANNED

NUMBER

NUM_QUERIES로 정의된 쿼리에 대해 이 테이블에서 스캔한 행 수입니다.

ROWS_PRUNED

NUMBER

NUM_QUERIES로 정의된 쿼리에 대해 이 테이블에서 정리된 행 수입니다. 이러한 행은 쿼리 처리 중에 제거되고 스캔되지 않아 쿼리의 효율성이 향상되었습니다.

ROWS_MATCHED

NUMBER

이 테이블에서 NUM_QUERIES로 정의된 쿼리를 스캔하는 동안 WHERE 절 필터와 일치한 행의 수입니다.

SEARCH_OPTIMIZATION_SUPPORTED_EXPRESSIONS

ARRAY

NUM_QUERIES로 정의된 쿼리에 대해 이 테이블을 스캔하는 속도를 잠재적으로 높일 수 있는 이 열에서 지원되는 검색 최적화 식의 목록입니다.

사용법 노트

  • 뷰의 대기 시간은 최대 4시간입니다.

  • 데이터는 1년 동안 보관됩니다.

  • 이 뷰에는 하이브리드 테이블 에 대한 정리 정보가 포함되지 않습니다.

  • USAGE_VIEWER 데이터베이스 역할이 부여된 사용자 및 역할이 뷰에 액세스할 수 있습니다. 자세한 내용은 SNOWFLAKE 데이터베이스 역할 섹션을 참조하십시오.

  • ACCESS_TYPE 열에는 다음 값 중 하나가 포함됩니다.

    • WHERE: 이 열은 WHERE 절의 필터 조건에서 사용됩니다.

    • JOIN: 이 열은 JOIN 작업에 대한 조건에서 사용됩니다.

  • 이 뷰에 표시된 액세스 동작은 원래 쿼리 텍스트와 다를 수 있는 실행된 실제 쿼리 계획을 반영합니다. 예를 들어, HAVING 절이 GROUP BY 절에 의해 생성된 집계된 결과를 참조하지 않을 경우 최적화되고 WHERE 절로 다시 작성될 수 있으며 ACCESS_TYPE 값은 WHERE 가 됩니다.

  • 푸시다운 최적화의 이점을 누릴 수 없는 복잡한 필터링 조건의 경우, 필터링 조건과 일치하지 않더라도 테이블 스캔 작업 중에 행이 필터링되지 않을 수 있습니다. 따라서 이러한 행은 ROWS_MATCHED 값에서 계산됩니다.

  • 현재, SEARCH_OPTIMIZATION_SUPPORTED_EXPRESSIONS 열은 EQUALITY 및 SUBSTRING 검색 방법 만 제안합니다.

  • 이 뷰는 쿼리당 가장 오래 실행되는 테이블 스캔 1,000개에 대한 데이터를 유지합니다. 매우 복잡한 쿼리만 이 스캔 횟수를 초과하므로 데이터가 거의 생략되지 않습니다.

지정된 날짜에 대해 특정 테이블에 대한 쿼리의 열 수준 정리 기록을 반환합니다.

SELECT interval_start_time, table_name, column_name, access_type, num_queries,
    rows_scanned, rows_pruned, rows_matched,
    search_optimization_supported_expressions::VARCHAR as search_optim
  FROM SNOWFLAKE.ACCOUNT_USAGE.COLUMN_QUERY_PRUNING_HISTORY
  WHERE interval_start_time like '2025-04-24%' AND table_name='SENSOR_DATA_TS'
  ORDER BY 3, 1;
Copy
+-------------------------------+----------------+-------------+-------------+-------------+--------------+-------------+--------------+-----------------------------+
| INTERVAL_START_TIME           | TABLE_NAME     | COLUMN_NAME | ACCESS_TYPE | NUM_QUERIES | ROWS_SCANNED | ROWS_PRUNED | ROWS_MATCHED | SEARCH_OPTIM                |
|-------------------------------+----------------+-------------+-------------+-------------+--------------+-------------+--------------+-----------------------------|
| 2025-04-24 14:00:00.000 -0700 | SENSOR_DATA_TS | DEVICE_ID   | WHERE       |           1 |      2678400 |     2678400 |            5 | ["EQUALITY(\"DEVICE_ID\")"] |
| 2025-04-24 14:00:00.000 -0700 | SENSOR_DATA_TS | DEVICE_ID   | WHERE       |           1 |      2678400 |     2678400 |            5 | ["EQUALITY(\"DEVICE_ID\")"] |
| 2025-04-24 15:00:00.000 -0700 | SENSOR_DATA_TS | DEVICE_ID   | WHERE       |           1 |      2678400 |     2678400 |      2678400 | ["EQUALITY(\"DEVICE_ID\")"] |
| 2025-04-24 15:00:00.000 -0700 | SENSOR_DATA_TS | DEVICE_ID   | WHERE       |           1 |      2678400 |     2678400 |      2678400 | ["EQUALITY(\"DEVICE_ID\")"] |
| 2025-04-24 15:00:00.000 -0700 | SENSOR_DATA_TS | DEVICE_ID   | WHERE       |           1 |      2678400 |     2678400 |            5 | ["EQUALITY(\"DEVICE_ID\")"] |
| 2025-04-24 15:00:00.000 -0700 | SENSOR_DATA_TS | DEVICE_ID   | WHERE       |           1 |      2678400 |     2678400 |      2678400 | ["EQUALITY(\"DEVICE_ID\")"] |
| 2025-04-24 17:00:00.000 -0700 | SENSOR_DATA_TS | DEVICE_ID   | WHERE       |           1 |      2678400 |     2678400 |      2678400 | ["EQUALITY(\"DEVICE_ID\")"] |
| 2025-04-24 17:00:00.000 -0700 | SENSOR_DATA_TS | DEVICE_ID   | WHERE       |           1 |      2678400 |     2678400 |      2678400 | ["EQUALITY(\"DEVICE_ID\")"] |
| 2025-04-24 19:00:00.000 -0700 | SENSOR_DATA_TS | DEVICE_ID   | WHERE       |           1 |      2678400 |     2678400 |      2678400 | ["EQUALITY(\"DEVICE_ID\")"] |
| 2025-04-24 19:00:00.000 -0700 | SENSOR_DATA_TS | DEVICE_ID   | WHERE       |           1 |      2678400 |     2678400 |      2678400 | ["EQUALITY(\"DEVICE_ID\")"] |
| 2025-04-24 17:00:00.000 -0700 | SENSOR_DATA_TS | TEMPERATURE | WHERE       |           1 |      5356800 |           0 |      3262387 | NULL                        |
| 2025-04-24 17:00:00.000 -0700 | SENSOR_DATA_TS | TEMPERATURE | WHERE       |           1 |      2678400 |     2678400 |       394106 | NULL                        |
| 2025-04-24 17:00:00.000 -0700 | SENSOR_DATA_TS | TEMPERATURE | WHERE       |           1 |      5356800 |           0 |      1227686 | NULL                        |
| 2025-04-24 17:00:00.000 -0700 | SENSOR_DATA_TS | TEMPERATURE | WHERE       |           1 |      2678400 |     2678400 |       216642 | NULL                        |
| 2025-04-24 17:00:00.000 -0700 | SENSOR_DATA_TS | TEMPERATURE | WHERE       |           1 |      2678400 |     2678400 |       216642 | NULL                        |
| 2025-04-24 17:00:00.000 -0700 | SENSOR_DATA_TS | TEMPERATURE | WHERE       |           1 |      5356800 |           0 |      1227686 | NULL                        |
| 2025-04-24 17:00:00.000 -0700 | SENSOR_DATA_TS | TEMPERATURE | WHERE       |           1 |      5356800 |           0 |       820272 | NULL                        |
| 2025-04-24 17:00:00.000 -0700 | SENSOR_DATA_TS | TEMPERATURE | WHERE       |           1 |      5356800 |           0 |      3262387 | NULL                        |
| 2025-04-24 17:00:00.000 -0700 | SENSOR_DATA_TS | TEMPERATURE | WHERE       |           1 |      5356800 |           0 |      3262387 | NULL                        |
| 2025-04-24 17:00:00.000 -0700 | SENSOR_DATA_TS | TEMPERATURE | WHERE       |           1 |      5356800 |           0 |      1227686 | NULL                        |
| 2025-04-24 17:00:00.000 -0700 | SENSOR_DATA_TS | TEMPERATURE | WHERE       |           1 |      2678400 |     2678400 |       216642 | NULL                        |
+-------------------------------+----------------+-------------+-------------+-------------+--------------+-------------+--------------+-----------------------------+

이 쿼리의 sensor_data_ts 테이블에는 5,356,800개 행의 합성 시계열 데이터가 포함되어 있습니다. WHERE 절 조건에서 device_idtemperature 열을 필터링한 여러 쿼리에 대해 테이블 행의 정확히 절반(2,678,400)이 정리되었습니다.

device_id 열은 EQUALITY 검색 방법을 사용하는 검색 최적화의 대상으로 제안됩니다. 이 검색 최적화를 추가하면 테이블 스캔 시 이점이 있을 수 있습니다.

가독성을 높이기 위해 ARRAY_TO_STRING 함수를 사용하여 SEARCH_OPTIMIZATION_SUPPORTED_EXPRESSIONS 열을 문자열로 변환할 수 있습니다. 예:

ARRAY_TO_STRING(search_optimization_supported_expressions, ', ')
Copy