Greenplum常用SQL总结

查看表在各个segment的数据分布

=# SELECT gp_segment_id,count(*) FROM table_name GROUP BY gp_segment_id;

查看分区表在各个segment的数据分布

=# SELECT gp_segment_id,tableoid::regclass,count(*) FROM partition_tablename GROUP BY 1,2 ORDER BY 1,2;

查看磁盘可用空间

=# SELECT dfsegment, dfhostname, dfdevice, pg_size_pretty(dfspace) AS dfspace 
   FROM gp_toolkit.gp_disk_free ORDER BY dfsegment;
 dfsegment | dfhostname  |         dfdevice          | dfspace
-----------+-------------+---------------------------+---------
         0 |  minion_187 |  /dev/mapper/ncl-paasdata | 842 MB
         1 |  minion_187 |  /dev/mapper/ncl-paasdata | 842 MB
         2 |  minion_187 |  /dev/mapper/ncl-paasdata | 842 MB
         3 |  minion_187 |  /dev/mapper/ncl-paasdata | 842 MB
         4 |  minion_188 |  /dev/mapper/ncl-paasdata | 844 MB
         5 |  minion_188 |  /dev/mapper/ncl-paasdata | 844 MB
         6 |  minion_188 |  /dev/mapper/ncl-paasdata | 844 MB
         7 |  minion_188 |  /dev/mapper/ncl-paasdata | 844 MB
(8 rows)

查看所有数据库占用空间大小

=# SELECT sodddatname AS db_name, pg_size_pretty(sodddatsize) AS db_size
   FROM gp_toolkit.gp_size_of_database ORDER BY sodddatname;
               db_name               | db_size
-------------------------------------+---------
 db_21c0944e79f2488bb610d58c89f1809b | 51 GB
 db_30639a04dc4b4b7c891667d7031cc989 | 46 GB
 db_9bd86a7457fc445c9b3dbcb39a4eed30 | 148 MB
 db_e0ecc09cf5db4dcfb1460c3ff06d1b0d | 146 MB
 dbplat                              | 147 MB
(5 rows)

查看表占用空间大小

=# SELECT relname AS name, sotdsize AS size, sotdtoastsize AS toast, sotdadditionalsize AS other
   FROM gp_toolkit.gp_size_of_table_disk as sotd, pg_class
   WHERE sotd.sotdoid=pg_class.oid ORDER BY relname;
           name            |   size   | toast  | other
---------------------------+----------+--------+-------
 comm_ne_test_mac          |        0 |      0 |     0
 generationstrategytable   |   262144 |      0 |     0
 old_t_npa_ctn_moc_busi    | 62816256 | 294912 |     0
 old_t_npa_ctn_moc_card    | 91947008 | 294912 |     0
 old_t_npa_ctn_moc_ethserv | 43483136 | 294912 |     0
(5 rows)

查看索引占用空间大小

=# SELECT soisize, relname as indexname
   FROM pg_class, gp_toolkit.gp_size_of_index
   WHERE pg_class.oid=gp_size_of_index.soioid AND pg_class.relkind='i';
 soisize |           indexname
---------+-------------------------------
  557056 | t_npa_mark_style_pkey
  557056 | t_npa_mark_style_content_pkey
  294912 | t_npa_operator_log_pkey
  557056 | t_npa_periodmark_pkey
  557056 | t_npa_drill_content_pkey
(5 rows)

建表模板

drop table if exists rpt.rpt_bill_m ; 

create table rpt.rpt_bill_m (

user_id SERIAL, ----自增序列

acct_month varchar(6),

bill_fee numeric(16,2) ,

user_info text 

)

WITH (

appendonly=true, -- 对于压缩表跟列存储来说,前提必须是appendonly表

orientation=column,-- 列存 row

compresstype=zlib,-- 压缩格式 --QUICKLZ

COMPRESSLEVEL=5, -- 压缩等级 0--9 --1 压缩低查询快

OIDS=FALSE

)

DISTRIBUTED BY (user_id) -- 分布键

PARTITION BY LIST("acct_month") -- 分区键

(

PARTITION p_201810 VALUES ('201810'),

PARTITION p_201811 VALUES ('201811'),

PARTITION p_201812 VALUES ('201812'),

default partition other --容错没有分区键在此表

/* PARTITION p_20170801 START('20170801'::DATE) END ('20170831'::DATE)

EVERY ('1 month'::INTERVAL) */

);

comment on column rpt.rpt_bill_m.user_info is '员工备注信息'; -- 注解 
  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值