你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
重要
新项目不再支持 Azure Cosmos DB for PostgreSQL。 不要将此服务用于新项目。 请改用以下两个服务之一:
将 Azure Cosmos DB for NoSQL 用于分布式数据库解决方案,该方案专为高规模场景设计,并提供 99.999% 的可用性服务级别协议(SLA)、即时自动缩放和跨多个区域的自动故障转移功能。
使用 Azure Database For PostgreSQL 的弹性群集功能,利用开源 Citus 扩展进行 PostgreSQL 的分片。
在 PostgreSQL 中查找表大小的常用方法 pg_total_relation_size 大大低报了 Azure Cosmos DB for PostgreSQL 上分布式表的大小。
此函数在群集上所做的就是显示协调器节点上表的大小。 实际上,分布式表中的数据位于工作器节点(在分片中)而不是协调器节点上。 实际获得的分布式表大小的度量值是分片大小的总和。 Azure Cosmos DB for PostgreSQL 提供了用于查询此信息的帮助程序函数。
| 功能 | 返回 |
|---|---|
| citus_relation_size(relation_name) |
|
| citus_table_size(relation_name) | |
| citus_total_relation_size(relation_name) |
|
这些函数类似于三个标准的 PostgreSQL 对象大小函数,除非它们不能连接到一个节点,那样会出错。
示例
下面演示如何列出所有分布式表的大小:
SELECT logicalrelid AS name,
pg_size_pretty(citus_table_size(logicalrelid)) AS size
FROM pg_dist_partition;
输出:
┌───────────────┬───────┐
│ name │ size │
├───────────────┼───────┤
│ github_users │ 39 MB │
│ github_events │ 37 MB │
└───────────────┴───────┘