开发者社区> 问答> 正文

如何通过SQL查询找到数据库中所有的复制表,并查看它们的大小?

如何通过SQL查询找到数据库中所有的复制表,并查看它们的大小?

展开
收起
花开富贵111 2024-07-24 18:40:47 18 0
1 条回答
写回答
取消 提交回答
  • 可以使用以下SQL查询来找到数据库中的复制表并查看它们的大小:

    SELECT n.nspname AS "schemaname", 
    c.relname AS "tablename", 
    CASE WHEN p.policytype='r' THEN 'replicated' ELSE 'normal' END AS "distrb_type", 
    pg_size_pretty(pg_relation_size(c.oid)) AS "size" 
    FROM pg_class c 
    LEFT JOIN gp_distribution_policy p ON c.oid = p.localoid 
    LEFT JOIN pg_namespace n ON c.relnamespace = n.oid 
    WHERE n.nspname = 'public' 
    AND c.relkind = 'r' 
    AND p.policytype = 'r' 
    ORDER BY pg_relation_size(c.oid) DESC;
    

    这个查询会列出public模式下所有被标记为复制表(p.policytype='r')的表,并显示它们的大小。

    2024-07-24 20:09:03
    赞同 5 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
2022 DTCC-阿里云一站式数据库上云最佳实践 立即下载
云时代的数据库技术趋势 立即下载
超大型金融机构国产数据库全面迁移成功实践 立即下载