Greenplum是关系型的分布式数据库,需要存储的数据库在进入数据库时,将先进行数据分布的处理工作,讲一个表的数据平均分不到每个节点上,并为每个表指定一个分发列(distribute Column),之后根据Hash来分布数据。

本篇介绍查询某模式下所有表的分布键信息,适用于:

  1. 排查是否有分布键创建不合理的表,如果分布键是重复率比较高的字段会造成数据分布不均匀,存储过于倾斜。
  2. 排查经常做表关联的表是否是相同分布键,这样会提高执行效率。

具体sql如下:

SELECT
    aaa.nspname AS "模式名",
    aaa.relname AS "表名",
    aaa.table_comment AS "中文表明",
    ccc.attname AS "分布键"
FROM
    (
        SELECT
            aa.oid,
            obj_description (aa.oid) AS table_comment,
            aa.relname,
            bb.localoid,
            bb.attrnums,
            regexp_split_to_table(
                array_to_string(bb.attrnums, ','),
                ','
            ) att,
            dd.nspname
        FROM
            pg_class aa --原数据信息 最重要的表!
        LEFT JOIN gp_distribution_policy bb ON bb.localoid = aa.oid --分布键表 
        LEFT JOIN pg_namespace dd ON dd.oid = aa.relnamespace --模式 
        LEFT JOIN pg_inherits hh ON aa.oid = hh.inhrelid --继承表  
        WHERE
            dd.nspname = 'dim'  -- 替换成需要的模式
        AND hh.inhrelid IS NULL 
    ) aaa
LEFT JOIN pg_attribute ccc ON ccc.attrelid = aaa.oid
AND ccc.attnum = aaa.att
WHERE
    ccc.attnum > 0
ORDER BY
    aaa.relname ;

运行结果:

亲们如果有更好的sql或者意见欢迎留言!

相关文章:gp数据库】十条实用数据库SQL优化建议

修改分布键可参考:【gp数据库】工作中常用SQL语句干货

最新文章

  1. Android四种点击事件和五中存储方式
  2. css 表格
  3. 应用matplotlib绘制地图
  4. Ubuntu 虚拟机空间不足增加空间笔记
  5. LINUX 自动备份脚本文件
  6. Unity-Animator深入系列---FAQ
  7. Monkey学习(2)简单命令合集
  8. iOS多线程的初步研究(十)-- dispatch同步
  9. *ecshop 模板中foreach用法详解
  10. 【BestCoder】【Round#29】
  11. spot 5、ALOS监督分类波段组成
  12. angualrjs学习总结三(http、select、表格、指令以及事件)
  13. openwrt使用3G上网卡
  14. StackExchange.Redis 二次封装
  15. 插件开发之360 DroidPlugin源码分析(五)Service预注册占坑
  16. 【NodeJS】基础知识
  17. nexus5 root
  18. 前端(各种demo)一:css实现三角形,css实现梯形,pop弹层,css伪类before,after使用,svg使用(持续更新中)
  19. Codeforces Round #428 (Div. 2) D. Winter is here 容斥
  20. Vue(四)事件和属性

热门文章

  1. MediaWIKI部署流程
  2. Chapter 3 Phenomenon——10
  3. android即时通信开源项目信息
  4. springweb flux 编程模型
  5. 7-nginx-keepalived配置主从双击热备
  6. WPF样式动画Trigger.EnterActions和Trigger.ExitActions(ExitActions其实可以不做任何事情)
  7. Innosetup新增Wizard Page
  8. MVC中页面传值方式总结
  9. CentOS6.8启动Tomcat无法访问
  10. Java中Date与String的相互转换