- 스키마:
TABLE_PRUNING_HISTORY 뷰¶
이 Account Usage 뷰를 사용하면 모든 테이블의 정리 효율성을 확인하고 테이블의 기본(자연스러운) 데이터 순서가 정리에 미치는 영향을 이해할 수 있습니다.
스캔하고 정리된 파티션의 총 개수(PARTITIONS_SCANNED + PARTITIONS_PRUNED
)와 정리된 파티션의 수(PARTITIONS_PRUNED
)를 비교할 수 있습니다.
또한 이 뷰를 사용하면 테이블에 대해 자동 클러스터링 과 검색 최적화 를 활성화하기 전후에 정리에 미치는 효과를 비교할 수도 있습니다.
열¶
열 이름 |
데이터 타입 |
설명 |
---|---|---|
START_TIME |
TIMESTAMP_LTZ |
쿼리가 실행된 시간 범위의 시작(시간 기준)입니다. |
END_TIME |
TIMESTAMP_LTZ |
쿼리가 실행된 시간 범위의 끝(시간 기준)입니다. |
TABLE_ID |
NUMBER |
쿼리된 테이블의 내부/시스템 생성 식별자입니다. |
TABLE_NAME |
TEXT |
쿼리된 테이블의 이름입니다. |
SCHEMA_ID |
NUMBER |
쿼리된 테이블을 포함하는 스키마에 대한 내부/시스템 생성 식별자입니다. |
SCHEMA_NAME |
TEXT |
쿼리된 테이블을 포함하는 스키마의 이름입니다. |
DATABASE_ID |
NUMBER |
쿼리된 테이블을 포함하는 데이터베이스의 내부/시스템 생성 식별자입니다. |
DATABASE_NAME |
TEXT |
쿼리된 테이블을 포함하는 데이터베이스의 이름입니다. |
NUM_SCANS |
NUMBER |
START_TIME 및 END_TIME 윈도우 중에 테이블에 대한 모든 쿼리(SELECT 문 및 DML 문 포함)의 스캔 작업 수입니다. 주어진 쿼리로 인해 동일한 테이블에 대해 여러 스캔 작업이 수행될 수 있습니다. |
PARTITIONS_SCANNED |
NUMBER |
|
PARTITIONS_PRUNED |
NUMBER |
|
ROWS_SCANNED |
NUMBER |
|
ROWS_PRUNED |
NUMBER |
|
사용법 노트¶
뷰의 지연 시간은 최대 6시간입니다.
이 뷰에는 하이브리드 테이블 에 대한 정리 정보가 포함되지 않습니다.
예¶
지난 7일 동안 정리 효율성이 가장 낮은 상위 5개 테이블을 나열합니다.
SELECT
table_id,
ANY_VALUE(table_name) AS table_name,
SUM(num_scans) AS total_num_scans,
SUM(partitions_scanned) AS total_partitions_scanned,
SUM(partitions_pruned) AS total_partitions_pruned,
SUM(rows_scanned) AS total_rows_scanned,
SUM(rows_pruned) AS total_rows_pruned
FROM SNOWFLAKE.ACCOUNT_USAGE.TABLE_PRUNING_HISTORY
WHERE start_time >= DATEADD(day, -7, CURRENT_TIMESTAMP())
GROUP BY table_id
ORDER BY
total_partitions_pruned / GREATEST(total_partitions_scanned + total_partitions_pruned, 1),
total_partitions_scanned DESC
LIMIT 5;
+----------+----------------+-----------------+--------------------------+-------------------------+--------------------+-------------------+
| TABLE_ID | TABLE_NAME | TOTAL_NUM_SCANS | TOTAL_PARTITIONS_SCANNED | TOTAL_PARTITIONS_PRUNED | TOTAL_ROWS_SCANNED | TOTAL_ROWS_PRUNED |
|----------+----------------+-----------------+--------------------------+-------------------------+--------------------+-------------------|
| 308226 | SENSOR_DATA_TS | 11 | 21 | 1 | 52500000 | 2500000 |
| 185364 | MATCH | 16 | 14 | 2 | 240968 | 34424 |
| 209932 | ORDER_HEADER | 2 | 300 | 56 | 421051748 | 75350790 |
| 209922 | K7_T1 | 261 | 261 | 52 | 30421 | 3272 |
| 338948 | SENSOR_DATA_TS | 9 | 15 | 3 | 38880000 | 8035200 |
+----------+----------------+-----------------+--------------------------+-------------------------+--------------------+-------------------+
위의 예에서는 스캔된 파티션 수와 정리된 파티션 수의 합이 0일 때 0으로 나누지 못하도록 하기 위해 GREATEST 를 사용합니다.