Utilisez ces fonctions pour vérifier l'espace de stockage consommé par vos bases de données et vos tables. Elles sont utiles pour la planification des capacités, le suivi des coûts et l'analyse d'une augmentation inattendue du stockage.
| Fonction | Signature | Description |
|---|---|---|
PG_DATABASE_SIZE |
PG_DATABASE_SIZE(database_name) |
Renvoie la taille totale de stockage d'une base de données, y compris toutes les tables et les journaux WAL (Write-Ahead Logging). |
PG_RELATION_SIZE |
PG_RELATION_SIZE(table_name) |
Renvoie la taille combinée en mémoire et sur disque d'une table. |
HOLOGRES.HG_RELATION_SIZE |
HOLOGRES.HG_RELATION_SIZE('schema.table'[, 'type']) |
Renvoie le détail du stockage d'une table par composant : données, journaux binaires ou vues matérialisées. Nécessite Hologres V2.1 ou version ultérieure. |
PG_SIZE_PRETTY convertit un nombre brut d'octets dans un format lisible, tel que kB, MB ou GB. Les unités sont basées sur des puissances de 2 : 1 kB = 1 024 octets, 1 MB = 1 048 576 octets. Combinez cette fonction avec l'une des fonctions ci-dessus pour formater la sortie.
PG_DATABASE_SIZE
Renvoie la taille totale de stockage de la base de données actuelle. Utilisez cette fonction pour obtenir une vue d'ensemble de la consommation de stockage au niveau de la base de données.
Syntaxe
SELECT PG_DATABASE_SIZE('database_name');
Paramètres
| Paramètre | Obligatoire | Description |
|---|---|---|
database_name |
Oui | Nom de la base de données à interroger. |
Valeur de retour
Renvoie la somme des éléments suivants :
Tailles de stockage de toutes les tables de la base de données
Tailles des journaux WAL générés dans la base de données
Exemple
Affichez la taille de la base de données actuelle dans un format lisible :
SELECT PG_SIZE_PRETTY(PG_DATABASE_SIZE(CURRENT_DATABASE()));
PG_RELATION_SIZE
Renvoie la taille totale de stockage d'une table, couvrant à la fois l'espace mémoire et l'espace disque physique. Utilisez cette fonction pour identifier les tables qui consomment le plus de stockage.
Syntaxe
SELECT PG_RELATION_SIZE('table_name');
Paramètres
| Paramètre | Obligatoire | Description |
|---|---|---|
table_name |
Oui | Nom de la table à interroger. |
Valeur de retour
Renvoie une valeur de type STRING indiquant la taille totale de l'espace mémoire et de l'espace disque physique actuellement occupés par la table.
Renvoie
0si vous interrogez une table partitionnée parente sans spécifier de partition enfant.Renvoie null si la taille de stockage de la table est égale à 0.
Limitations
Seules les tables internes sont prises en charge. Pour vérifier une table partitionnée, interrogez une table partitionnée enfant spécifique plutôt que la table partitionnée parente directement.
L'interrogation de la taille de stockage d'une table avec la journalisation binaire activée nécessite Hologres V1.3.24 ou une version ultérieure. Pour mettre à jour votre instance ou obtenir de l'aide, consultez Mettre à niveau les instances ou Obtenir une assistance en ligne pour Hologres.
Les métriques de stockage collectées depuis le répertoire Apsara Distributed File System incluent les tables, les fichiers de métadonnées et les fichiers temporaires générés par les opérations d'écriture, de mise à jour et de suppression. Par conséquent, les valeurs des métriques sont légèrement supérieures aux valeurs renvoyées par PG_RELATION_SIZE .
Exemples
Les exemples suivants utilisent les données d'exemple pour les fonctions d'agrégation générales.
Interrogez la taille de stockage d'une seule table :
SELECT PG_SIZE_PRETTY(PG_RELATION_SIZE('example_table'));
Interrogez les tailles de stockage de toutes les tables d'une base de données, triées de la plus grande à la plus petite :
SELECT table_schema || '.' || table_name AS table_full_name,
PG_SIZE_PRETTY(PG_RELATION_SIZE(QUOTE_IDENT(table_schema) || '.' || QUOTE_IDENT(table_name))) AS table_size,
PG_RELATION_SIZE(QUOTE_IDENT(table_schema) || '.' || QUOTE_IDENT(table_name)) AS order_size
FROM information_schema.tables
WHERE table_schema NOT IN ('pg_catalog', 'information_schema', 'hologres')
ORDER BY order_size DESC;
HOLOGRES.HG_RELATION_SIZE
Renvoie la taille de stockage d'une table ventilée par composant : données, journaux binaires ou vues matérialisées. Utilisez cette fonction lorsque vous avez besoin d'une visibilité granulaire sur ce qui entraîne la consommation de stockage, par exemple pour déterminer si les journaux binaires constituent le principal contributeur à la taille de la table.
Nécessite Hologres V2.1 ou une version ultérieure. Pour mettre à jour votre instance ou obtenir de l'aide, consultez Mettre à niveau les instances ou Obtenir une assistance en ligne pour Hologres.
Syntaxe
SELECT HOLOGRES.HG_RELATION_SIZE('schema.table'[, 'type']);
Paramètres
| Paramètre | Obligatoire | Description |
|---|---|---|
schema.table |
Oui | Nom complet de la table. schema correspond au nom du schéma et table au nom de la table. |
type |
Non | Composant de stockage à interroger. Valeurs valides : data, binlog, mv, all. |
Valeurs valides pour type :
| Valeur | Description |
|---|---|
data |
Taille de stockage des données de la table. |
binlog |
Taille de stockage des journaux binaires de la table. |
mv |
Taille de stockage de la vue matérialisée créée pour la table, le cas échéant. |
all |
Taille totale de stockage de la table (données + binlog + mv). |
Exemples
Les exemples suivants utilisent les données d'exemple pour les fonctions d'agrégation générales.
Interrogez la taille de stockage des données d'une table :
SELECT HOLOGRES.HG_RELATION_SIZE('public.example_table', 'data');
Interrogez la taille de stockage des journaux binaires d'une table :
SELECT HOLOGRES.HG_RELATION_SIZE('public.example_table', 'binlog');
Interrogez les tailles de stockage des données de toutes les tables d'une base de données, triées de la plus grande à la plus petite :
SELECT table_schema || '.' || table_name AS table_full_name,
pg_size_pretty(hologres.hg_relation_size(quote_ident(table_schema) || '.' || quote_ident(table_name), 'data')) AS data_size,
hologres.hg_relation_size(quote_ident(table_schema) || '.' || quote_ident(table_name), 'data') AS order_size
FROM information_schema.tables
WHERE table_schema NOT IN ('pg_catalog', 'information_schema', 'hologres', 'hologres_statistic')
ORDER BY order_size DESC;