Hologres es compatible con PostgreSQL y ofrece funciones para consultar el tamaño de almacenamiento de las tablas y las bases de datos. En este tema se describe cómo usar comandos SQL para ejecutar estas consultas.
Límites
Solo puede consultar el tamaño de almacenamiento de las tablas internas. No se admite la consulta directa de una tabla padre particionada; esta devuelve 0. Para consultar el tamaño de almacenamiento de una tabla particionada, debe consultar una tabla hija particionada específica. Si el tamaño de almacenamiento de una tabla es 0, la consulta devuelve un valor nulo.
En Hologres V1.3.24 y versiones posteriores, puede usar la función
pg_relation_sizepara consultar el tamaño de almacenamiento del binlog en las tablas que tienen habilitado el binlog de Hologres.La función
pg_relation_sizecalcula el tamaño de almacenamiento de una tabla. Sin embargo, las métricas de monitoreo miden el tamaño total de almacenamiento de archivos de la instancia en el directorio Pangu. Este directorio incluye el almacenamiento de tablas, los archivos de metadatos y los archivos temporales generados por las operaciones de escritura, actualización y eliminación. Por lo tanto, el tamaño de almacenamiento que reportan las métricas de monitoreo es ligeramente mayor que el resultado que devuelve la funciónpg_relation_size.
Consultar el tamaño de almacenamiento de una tabla
-
Sintaxis
SELECT pg_relation_size('table_name');--Returns the size in bytes. -
Parámetros
Parámetro
Descripción
table_name
El nombre de la tabla que se va a consultar en la base de datos actual.
-
Valor devuelto: representa el espacio que ocupa la tabla en disco y en memoria al momento de la consulta.
Para mejorar la legibilidad, use la función pg_size_pretty en la consulta. A continuación se muestra la sintaxis:
--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;
Consultar el tamaño de almacenamiento de un esquema
-
Notas de uso
Puede calcular el tamaño total de almacenamiento de todas las tablas dentro de un esquema específico.
-
Sintaxis
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; -
Parámetros
Parámetro
Descripción
schema_name
El nombre del esquema que se va a consultar.
Valor devuelto: el comando devuelve el tamaño total de almacenamiento en bytes.
Consultar el tamaño de almacenamiento de una base de datos
-
Notas de uso
Solo puede consultar el tamaño de almacenamiento de la base de datos a la que está conectado actualmente.
-
Sintaxis
SELECT pg_database_size(current_database()); --Returns the size in bytes. -
Parámetros
Parámetro
Descripción
current_database
Representa la base de datos actual. No necesita reemplazar este parámetro. Ejecute el comando directamente para consultar el tamaño de almacenamiento de la base de datos actual.
-
Valor devuelto: la función devuelve el tamaño total de almacenamiento de la base de datos en bytes. Este tamaño incluye todas las tablas de Hologres y el registro previo a escritura (WAL).
Para mejorar la legibilidad, use la función pg_size_pretty. A continuación se muestra la sintaxis:
SELECT pg_size_pretty(pg_database_size(current_database())); --Returns the size in a human-readable format, such as KB or MB.
Consultar los detalles de almacenamiento de una tabla
En Hologres V2.1 y versiones posteriores, puede usar la función hologres.hg_relation_size para consultar un desglose detallado del almacenamiento de una tabla, incluidos sus datos, su binlog y otros componentes.
-
Límites
La función
hologres.hg_relation_sizesolo es compatible con instancias de Hologres V2.1 y versiones posteriores. -
Sintaxis
SELECT hologres.hg_relation_size('<schema.table>','[data|binlog|mv|all]') ; -
Parámetros
Parámetro
Descripción
schema.table
El nombre del esquema y el nombre de la tabla.
[data|binlog|mv|all]
Parámetro opcional. Valores válidos:
data: el tamaño de almacenamiento de los datos de la tabla.
binlog: el tamaño de almacenamiento del binlog de la tabla.
mv: el tamaño de almacenamiento de la vista materializada de la tabla.
all: el tamaño total de almacenamiento de la tabla.
-
Ejemplos
-
Ejemplo 1: consulte el tamaño de almacenamiento de datos de una sola tabla.
SELECT hologres.hg_relation_size('<schema.table>','data') ; -
Ejemplo 2: consulte el tamaño de almacenamiento del binlog de una sola tabla.
SELECT hologres.hg_relation_size('<schema.table>','binlog') ; -
Ejemplo 3: consulte el tamaño de almacenamiento de todas las tablas de una base de datos.
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;
-