Requêtes pour connaître la taille des bases de données et la taille des tables :
Taille des bases de données :
| En bytes | En Giga |
| SELECT table_catalog AS database, table_schema AS schema, SUM(bytes) AS bytes FROM "<base de donnée>".information_schema.tables GROUP BY database, schema UNION ALL SELECT table_catalog AS database, table_schema AS schema, SUM(bytes) AS bytes FROM "SNOWFLAKE".information_schema.tables GROUP BY database, schema; |
SELECT
table_catalog AS database,
table_schema AS schema,
SUM(bytes) / POWER(1024, 3) AS taille_en_GB
FROM "<base de donnée>".information_schema.tables
GROUP BY database, schema
UNION ALL
SELECT
table_catalog AS database,
table_schema AS schema,
SUM(bytes) / POWER(1024, 3) AS taille_en_GB
FROM "SNOWFLAKE".information_schema.tables
GROUP BY database, schema;
|
Taille des bases de données par schéma, pour cela il faut être administrateur / orgadmin :
Pensez à choisir et utiliser un warehouse pour éviter d'avoir le message d'erreur :
|
000606 (57P03): No active warehouse selected in the current session. Select an active warehouse with the 'use warehouse' command. |
| SELECT TABLE_CATALOG AS DATABASE_NAME, TABLE_SCHEMA AS SCHEMA_NAME, DELETED, SUM(ACTIVE_BYTES) / POWER(1024, 3) AS ACTIVE_GB, SUM(TIME_TRAVEL_BYTES) / POWER(1024, 3) AS TIME_TRAVEL_GB, SUM(FAILSAFE_BYTES) / POWER(1024, 3) AS FAILSAFE_GB, SUM(ACTIVE_BYTES + TIME_TRAVEL_BYTES + FAILSAFE_BYTES) / POWER(1024, 3) AS TOTAL_GB FROM SNOWFLAKE.ACCOUNT_USAGE.TABLE_STORAGE_METRICS GROUP BY DATABASE_NAME, SCHEMA_NAME, DELETED ORDER BY TOTAL_GB DESC; |
Taille des tables :
| select table_schema, table_name, round(bytes/1024/1024, 2) as table_size from information_schema.tables where table_type = 'BASE TABLE' order by table_size desc; |
Taille des tables et le nombre de lignes dans chaque table :
| SELECT table_schema AS nom_schema, table_name AS nom_table, row_count AS nombre_de_lignes, ROUND(bytes/1024/1024, 2) AS taille_en_mb FROM INFORMATION_SCHEMA.TABLES WHERE table_type = 'BASE TABLE' ORDER BY bytes DESC; |
La même chose mais pour une table nommée :
|
SELECT
table_schema AS nom_schema, table_name AS nom_table, row_count AS nombre_de_lignes, ROUND(bytes/1024/1024, 2) AS taille_en_mb FROM INFORMATION_SCHEMA.TABLES WHERE table_type = 'BASE TABLE' AND table_name = '<nom_table>'; |
⚠️ Attention la taille des bases / tables ne représentent pas la taille réelle utilisé sur le disque , voir Snowflake : espace disque utilisé