开发者社区> 问答> 正文

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

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

展开
收起
花开富贵111 2024-07-24 18:40:47 37 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 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
SQL Server在电子商务中的应用与实践 立即下载
GeoMesa on Spark SQL 立即下载
原生SQL on Hadoop引擎- Apache HAWQ 2.x最新技术解密malili 立即下载