Compatible avec PostgreSQL, Hologres propose des fonctions pour interroger la taille de stockage des tables et des bases de données. Cette rubrique explique comment utiliser des instructions SQL pour effectuer ces requêtes.
Limites
L'interrogation de la taille de stockage concerne uniquement les tables internes. L'interrogation directe d'une table parente partitionnée n'est pas prise en charge et renvoie 0. Pour afficher la taille de stockage d'une table partitionnée, interrogez une table enfant partitionnée spécifique. Si la taille de stockage d'une table est égale à 0, la requête renvoie une valeur nulle.
À partir de Hologres V1.3.24, utilisez la fonction
pg_relation_sizepour afficher la taille de stockage du binlog des tables dont le binlog Hologres est activé.La fonction
pg_relation_sizecalcule la taille de stockage d'une table. Toutefois, les métriques de surveillance mesurent la taille totale du stockage des fichiers de l'instance dans le répertoire Pangu. Le répertoire Pangu inclut le stockage des 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, la taille de stockage indiquée par les métriques de surveillance est légèrement supérieure au résultat renvoyé par la fonctionpg_relation_size.
Afficher la taille de stockage d'une table
-
Syntaxe
SELECT pg_relation_size('table_name');--Returns the size in bytes. -
Paramètres
Parameter
Description
table_name
Le nom de la table à interroger dans la base de données actuelle.
-
Valeur de retour : cette valeur représente l'espace occupé par la table sur le disque et en mémoire au moment de la requête.
Pour améliorer la lisibilité, utilisez la fonction pg_size_pretty pour effectuer la requête. La syntaxe est la suivante :
--View the storage size of a single table SELECT pg_size_pretty(pg_relation_size('table_name')); --View the storage size of all tables 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;
Afficher la taille de stockage d'un schéma
-
Remarques sur l'utilisation
Calculez la taille de stockage totale de toutes les tables au sein d'un schéma spécifique.
-
Syntaxe
SELECT table_schema, pg_size_pretty(SUM(pg_relation_size(quote_ident(table_schema) || '.' || quote_ident(table_name))::decimal)) AS schema_size FROM information_schema.tables WHERE table_schema = '<schema_name>' GROUP BY table_schema; -
Paramètres
Parameter
Description
schema_name
Le nom du schéma à interroger.
Valeur de retour : l'instruction renvoie la taille de stockage totale en octets.
Afficher la taille de stockage d'une base de données
-
Remarques sur l'utilisation
Affichez la taille de stockage uniquement de la base de données actuellement connectée.
-
Syntaxe
SELECT pg_database_size(current_database()); --Returns the size in bytes. -
Paramètres
Parameter
Description
current_database
Représente la base de données actuelle. Vous n'avez pas besoin de remplacer ce paramètre. Exécutez directement la commande pour interroger la taille de stockage de la base de données actuelle.
-
Valeur de retour : la fonction renvoie la taille de stockage totale de la base de données en octets. Cette taille inclut toutes les tables Hologres et le journal des transactions anticipées (WAL).
Pour améliorer la lisibilité, utilisez la fonction pg_size_pretty. La syntaxe est la suivante :
SELECT pg_size_pretty(pg_database_size(current_database())); --Returns the size in a human-readable format, such as KB or MB.
Afficher les détails de stockage d'une table
À partir de Hologres V2.1, utilisez la fonction hologres.hg_relation_size pour afficher une répartition détaillée du stockage d'une table, y compris ses données, son binlog et d'autres composants.
-
Limites
La fonction
hologres.hg_relation_sizeest prise en charge uniquement sur les instances Hologres V2.1 et versions ultérieures. -
Syntaxe
SELECT hologres.hg_relation_size('<schema.table>','[data|binlog|mv|all]') ; -
Paramètres
Parameter
Description
schema.table
Le nom du schéma et le nom de la table.
[data|binlog|mv|all]
Paramètre facultatif. Les valeurs valides sont :
data : la taille de stockage des données de la table.
binlog : la taille de stockage du binlog de la table.
mv : la taille de stockage de la vue matérialisée de la table.
all : la taille de stockage totale de la table.
-
Exemples
-
Exemple 1 : afficher la taille de stockage des données d'une seule table.
SELECT hologres.hg_relation_size('<schema.table>','data') ; -
Exemple 2 : afficher la taille de stockage du binlog d'une seule table.
SELECT hologres.hg_relation_size('<schema.table>','binlog') ; -
Exemple 3 : afficher la taille de stockage de toutes les tables d'une base de données.
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;
-