如何通过SQL查询找到数据库中所有的复制表,并查看它们的大小?
可以使用以下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')的表,并显示它们的大小。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。