Greenplum实用技巧

这篇具有很好参考价值的文章主要介绍了Greenplum实用技巧。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、通过gp_segment_id查看数据倾斜

gp_segment_id是表中的隐藏列,用来标记该行属于哪个segment节点。因此可以基于该隐藏列进行分组查询,获取每个segment的记录数,从而判断表数据的分布是否均匀或有倾斜。

qb=#select gp_segment_id, count(*) from call_center group by 1 order by 1;
 gp_segment_id | count 
---------------+-------
             0 |     4
             1 |     2
             2 |     6
             3 |     4
             4 |     5
             5 |     3
(6 rows)

二、查看segment配置和状态

gp_segment_configuration是一张系统表,它维护包括master、standby在内的所有节点信息。是DBA了解集群最直观的方式。

qb=# select * from gp_segment_configuration order by 1;
 dbid | content | role | preferred_role | mode | status | port  | hostname | address |                datadir                
------+---------+------+----------------+------+--------+-------+----------+---------+---------------------------------------
    1 |      -1 | p    | p              | n    | u      |  5432 | n208     | n208    | /var/lib/qb-data/master/qbseg-1
    2 |       0 | p    | p              | n    | u      | 40000 | n208     | n208    | /var/lib/qb-data/primary/qbseg0
    3 |       1 | p    | p              | n    | u      | 40001 | n208     | n208    | /var/lib/qb-data/primary/qbseg1
    4 |       2 | p    | p              | n    | u      | 40000 | n209     | n209    | /var/lib/qb-data/primary/qbseg2
    5 |       3 | p    | p              | n    | u      | 40001 | n209     | n209    | /var/lib/qb-data/primary/qbseg3
    6 |       4 | p    | p              | n    | u      | 40000 | n210     | n210    | /var/lib/qb-data/primary/qbseg4
    7 |       5 | p    | p              | n    | u      | 40001 | n210     | n210    | /var/lib/qb-data/primary/qbseg5

三、查看表的大小

查看表的大小有两种方式,一种是\d+,一种是pg_size_pretty。
如果是在一个schema下直接执行\d+,可以一次性看到所有表的size,如下

qb=# \d+
                                             List of relations
 Schema |             Name             |       Type        |  Owner   |  Storage  |   Size   | Description 
--------+------------------------------+-------------------+----------+-----------+----------+-------------
 tpcds  | call_center                  | table             | qb| ao_column | 1039 kB  | 
 tpcds  | catalog_page                 | table             | qb| ao_column | 2575 kB  | 
 tpcds  | catalog_returns              | partitioned table | qb| ao_column | 0 bytes  | 
 tpcds  | catalog_returns_1_prt_10     | table             | qb| ao_column | 1092 kB  | 
 tpcds  | catalog_returns_1_prt_100    | table             | qb| ao_column | 2197 kB  | 
 tpcds  | catalog_returns_1_prt_101    | table             | qb| ao_column | 2216 kB  | 
 tpcds  | catalog_returns_1_prt_102    | table             | qb| ao_column | 2192 kB  | 
 tpcds  | catalog_returns_1_prt_103    | table             | qb| ao_column | 2190 kB  | 
 tpcds  | catalog_returns_1_prt_104    | table             | qb| ao_column | 2175 kB  | 
 tpcds  | catalog_returns_1_prt_105    | table             | qb| ao_column | 2174 kB  | 
 tpcds  | catalog_returns_1_prt_106    | table             | qb| ao_column | 2136 kB  | 
 tpcds  | catalog_returns_1_prt_107    | table             | qb| ao_column | 2119 kB  | 
 tpcds  | catalog_returns_1_prt_108    | table             | qb| ao_column | 2091 kB  | 
 tpcds  | catalog_returns_1_prt_109    | table             | qb| ao_column | 2072 kB  |

如果想查看某一张表的size,可以使用pg_size_pretty,如下

qb=# select pg_size_pretty(pg_relation_size('catalog_returns_1_prt_158'));
 pg_size_pretty 
----------------
 929 kB
(1 row)

除此之外,还有以下一系列函数可以查看数据库、表占用空间大小。

函数 说明
pg_database_size(‘znids_dc’) 数据库大小,不计算索引
pg_total_size(‘znids_dc’) 数据库大小,包含索引
pg_indexes_size(‘alert_log_sm’) 表中索引大小
pg_relation_size(‘alert_log_sm’) 表大小,不包括索引
pg_total_relation_size(‘alert_log_sm’) 表大小,包括索引
pg_tablespace_size(‘alert_log_sm’) 表空间大小

四、explain相关用法

如果是仅查看执行计划,可直接使用explain select xxx。
如果是希望查看执行计划,并输出语句执行耗时,可使用explain analyze select xxx。

qb=# explain analyze select cc_call_center_sk,count(*) from call_center group by 1;
                                                        QUERY PLAN                                                         
---------------------------------------------------------------------------------------------------------------------------
 Gather Motion 6:1  (slice1; segments: 6)  (cost=0.00..431.00 rows=24 width=12) (actual time=3.223..4.193 rows=24 loops=1)
   ->  GroupAggregate  (cost=0.00..431.00 rows=4 width=12) (actual time=0.519..0.528 rows=6 loops=1)
         Group Key: cc_call_center_sk
         ->  Sort  (cost=0.00..431.00 rows=4 width=4) (actual time=0.504..0.509 rows=6 loops=1)
               Sort Key: cc_call_center_sk
               Sort Method:  quicksort  Memory: 150kB
               Executor Memory: 152kB  Segments: 6  Max: 26kB (segment 2)
               ->  Seq Scan on call_center  (cost=0.00..431.00 rows=4 width=4) (actual time=0.459..0.470 rows=6 loops=1)
 Optimizer: ORCA Optimizer (QBORCA)
 Planning Time: 15.128 ms
   (slice0)    Executor memory: 27K bytes.
   (slice1)    Executor memory: 159K bytes avg x 6 workers, 159K bytes max (seg0).  Work_mem: 26K bytes max.
 Memory used:  128000kB
 Execution Time: 5.362 ms
(14 rows)

五、使用show显示某个参数的值

可以在命令行使用show xxx来显示某个参数的值。如,

qb=# show max_connections ;
 max_connections 
-----------------
 250
(1 row)

六、通过gpconfig修改参数

通过gpconfig配置Master和所有Segment的postgresql.conf中参数。
查询:gpconfig -s
修改:gpconfig -c

比如,文章来源地址https://www.toymoban.com/news/detail-670894.html

gpconfig -c work_mem -v 120MB –masteronly
修改master上的work_mem =120MB
gpconfig -c max_connections -v 100 -m 10
修改Master上max_connections=10,Segment上修改成100
gpconfig -r default_statistics_target
注释参数,使用缺省参数
gpconfig –l
列出所有的参数
gpconfig -s max_connections
显示某个参数
最大连接数:show max_connections;
最大事务数:show max_prepared_transactions;

到了这里,关于Greenplum实用技巧的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 手机技巧:分享10个vivo手机实用小技巧技巧,值得收藏

    目录 1. 快速切换应用 2、智能助手Jovi 3. 轻按唤醒屏幕 4. 快速启动相机 5. 分屏功能 6. 手势操作 7. 一键清理 8.忘记密码 9.玩游戏耗电快 10.手机丢失后该怎么办 向右或向左滑动底部的虚拟按键即可。 vivo手机自带智能助手Jovi,可以根据用户的使用习惯,提供个性化的建议和推

    2024年02月02日
    浏览(67)
  • Pandas实用技巧

    首先我们需要先提前下载好 示例数据集 : drinksbycountry.csv : http://bit.ly/drinksbycountry imdbratings.csv : http://bit.ly/imdbratings chiporders.csv : http://bit.ly/chiporders smallstockers.csv : http://bit.ly/smallstocks kaggletrain.csv : http://bit.ly/kaggletrain uforeports.csv : http://bit.ly/uforeports 有时你需要知道正在使用的

    2024年02月10日
    浏览(65)
  • chrome-实用技巧

    重发请求,这有一种简单到发指的方式 选中 Network 点击 Fetch/XHR 选择要重新发送的请求 右键选择 Replay XHR  但是经过实际使用调研,发现它只适用于axios或类似方式使用xhr api,则XHR仍在重放,但是,如果使用新的api fetch,则需要使用其他方法,如下:  此方式还可以直接修改

    2024年02月05日
    浏览(57)
  • AI绘画高效实用技巧

    如何调整整体占画面比例的问题 首先看看主要镜头类型: 广角镜头 (10mm至35mm) 拍全身 标准镜头 (35mm至85mm) 半身照 特写镜头 (85mm至300mm) 抓细节 以全画幅135为例: 20mm以下的称之为超广角镜头 21mm~40mm焦距称之为广角镜头 41mm~60mm焦距称之为标准镜头 61mm~100mm焦距称之为中焦镜头

    2024年02月11日
    浏览(64)
  • Gitlab CICD实用技巧汇总

    1、stage参数 stages:   - build   - test   - deploy 相同stage的作业会并行执行,有一个失败,则认为这个stage失败。 不同stage的作业会按序执行,前面stage有失败,后续stage不会继续执行。 可以使用needs参数改变不同stage之间的依赖关系。 2、cache参数 cache 是一种用于存储和重用构建产

    2024年02月06日
    浏览(64)
  • C语言—实用调试技巧

    第一次被发现的导致计算机错误的飞蛾,也是第一个计算机程序错误。 计算机程序或者硬件里面存在的这种缺陷—bug(程序错误或程序缺陷) 找bug的过程—调试 所有发生的事情都一定有迹可循,如果问心无愧,就不需要掩盖也就没有迹象了,如果问心有愧,就必然需要掩盖

    2024年02月04日
    浏览(41)
  • VS实用调试技巧

    Bug一词的原意是虫子,而在电脑系统或程序中隐藏着的一些未被发现的 缺陷或问题 ,人们也叫它\\\"bug\\\"。这是为什么呢?这就要追溯到一个程序员与飞蛾的故事了。 Bug的创始人格蕾丝·赫柏(Grace Murray Hopper),是一位为美国海军工作的电脑专家,也是最早将人类语言融入到电

    2024年02月01日
    浏览(48)
  • Navicat16实用小技巧

    数据库管理工具是一种用于管理数据库的软件工具,它可以帮助用户创建、修改、维护和查询数据库。数据库管理工具可以为用户提供可视化界面,使得管理数据库变得更加容易。最为一款数据库管理工具,需要具备一下功能: 数据库创建和配置:数据库管理工具可以帮助用

    2024年02月04日
    浏览(47)
  • C#非常实用的技巧

    .NET Framework 4.5以上版本: .NET Framework 4以下 虽然微软的net提供了很多解压和压缩的程序,但是如果你的系统是net Framework4,那上面的代码就用不了了,此时需要借用7za.exe 1.0 C# 解压文件 解压解释: -y 参数表示 \\\"yes to all\\\",即自动回答 \\\"yes\\\",也就是在出现任何提示时都自动选择

    2024年02月01日
    浏览(54)
  • 实用调试技巧(1)

    什么是bug? 调试是什么?有多重要? debug和release的介绍。 windows环境调试介绍。 一些调试的实例。 如何写出好(易于调试)的代码。 编程常见的错误。 什么是Bug 我们在写代码的时候遇到的一些问题而导致程序出问题的就是Bug,世界上的第一个Bug是一支飞蛾,这就是Bug的由

    2024年02月14日
    浏览(52)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包