Compartir vía


Determinación del tamaño de tablas y relaciones en Azure Cosmos DB for PostgreSQL

SE APLICA A: Azure Cosmos DB for PostgreSQL (con tecnología de la extensión de base de datos de Citus en PostgreSQL)

La manera habitual de encontrar los tamaños de las tablas en PostgreSQL, pg_total_relation_size, notifica un tamaño muy por debajo al de las tablas distribuidas en Azure Cosmos DB for PostgreSQL. Toda esta función se realiza en un clúster para mostrar el tamaño de las tablas en el nodo de coordinación. En realidad, los datos de las tablas distribuidas residen en los nodos de trabajo (en particiones), no en el coordinador. Una medida verdadera del tamaño de la tabla distribuida se obtiene con la suma de los tamaños de las particiones. Azure Cosmos DB for PostgreSQL proporciona funciones auxiliares para consultar esta información.

Función Devoluciones
citus_relation_size(relation_name)
  • Tamaño de los datos reales de la tabla ("bifurcación principal").
  • Una relación puede ser el nombre de una tabla o de un índice.
citus_table_size(relation_name)
citus_total_relation_size(relation_name)
  • citus_table_size plus:

    • tamaño de los índices

Estas funciones son análogas a tres de las funciones de tamaño de objeto estándar de PostgreSQL, excepto que, si no se pueden conectar a un nodo, generan un error.

Ejemplo

Aquí se muestra cómo enumerar los tamaños de todas las tablas distribuidas:

SELECT logicalrelid AS name,
       pg_size_pretty(citus_table_size(logicalrelid)) AS size
  FROM pg_dist_partition;

Salida:

┌───────────────┬───────┐
│     name      │ size  │
├───────────────┼───────┤
│ github_users  │ 39 MB │
│ github_events │ 37 MB │
└───────────────┴───────┘

Pasos siguientes