ASP源码.NET源码PHP源码JSP源码JAVA源码DELPHI源码PB源码VC源码VB源码Android源码
当前位置:首页 >> 数据库 >> 其他数据库 >> GreenPlum中自定义查询表分区的视图

GreenPlum中自定义查询表分区的视图

来源:网络整理     时间:2016-07-18     关键词:

本篇文章主要介绍了" GreenPlum中自定义查询表分区的视图",主要涉及到方面的内容,对于其他数据库感兴趣的同学可以参考一下: GreenPlum中查询分区表的信息本身并不是特别的友好,需要做表关联并且做相应的处理,为了后期维护起来方便,这里创建两个视图供DBA直接查询,非常的方便。...

  GreenPlum中查询分区表的信息本身并不是特别的友好,需要做表关联并且做相应的处理,为了后期维护起来方便,这里创建两个视图供DBA直接查询,非常的方便。

1、创建list分区表的视图
create or replace view v_gp_list_partition_meta
as 
SELECT 
	pp.parrelid::regclass table_name,
	pr1.parchildrelid::regclass child_tbl_name,
	pr1.parname as partition_name,
	pr1.parruleord as partitionposition,
	translate(pg_get_expr(pr1.parlistvalues,pr1.parchildrelid),'-'':date character varying bpchar numeric double percision timestamp without time zone','') as partitionlistvalue,
	substring(parlistvalues,'consttype ([0-9]+)')::integer::regtype listtype
FROM  pg_partition pp, pg_partition_rule pr1
where pp.paristemplate = false and pr1.paroid=pp.oid and pp.parkind = 'l';

2、创建range分区表的视图
create or replace view v_gp_range_partition_meta
as 
SELECT 
	pp.parrelid::regclass table_name,
	pr1.parchildrelid::regclass child_tbl_name,
	pr1.parname as partition_name,
	pr1.parruleord as partitionposition,
	translate(pg_get_expr(pr1.parrangestart,pr1.parchildrelid),'-'':date character varying bpchar numeric double percision timestamp without time zone','') as partitionrangestart,
	translate(pg_get_expr(pr1.parrangeend,pr1.parchildrelid),'-'':date character varying bpchar numeric double percision timestamp without time zone','') as partitionrangeend,
	substring(parrangeend,'consttype ([0-9]+)')::integer::regtype rangetype
FROM  pg_partition pp, pg_partition_rule pr1
where pp.paristemplate = false and pr1.paroid=pp.oid and pp.parkind = 'r';

3、依次查询两个视图
testdb=# select * from v_gp_list_partition_meta;
         table_name          |               child_tbl_name                | partition_name | partitionposition | partitionlistvalue | listtype 
-----------------------------+---------------------------------------------+----------------+-------------------+--------------------+----------
 tbl_partition_list_yyyymmdd | tbl_partition_list_yyyymmdd_1_prt_p20160718 | p20160718      |                 1 | 20160718           | date
 tbl_partition_list_yyyymmdd | tbl_partition_list_yyyymmdd_1_prt_p20160719 | p20160719      |                 2 | 20160719           | date
(2 rows)

testdb=# select * from v_gp_range_partition_meta;
         table_name          |               child_tbl_name                | partition_name | partitionposition | partitionlistvalue | listtype 
-----------------------------+---------------------------------------------+----------------+-------------------+--------------------+----------
 tbl_partition_range_yyyymmdd | tbl_partition_range_yyyymmdd_1_prt_p20160718 | p20160718      |                 1 | 20160718            | 20160719          | date
 tbl_partition_range_yyyymmdd | tbl_partition_range_yyyymmdd_1_prt_p20160719 | p20160719      |                 2 | 20160719            | 20160720          | date
(121 rows)

以上就介绍了 GreenPlum中自定义查询表分区的视图,包括了方面的内容,希望对其他数据库有兴趣的朋友有所帮助。

本文网址链接:http://www.codes51.com/article/detail_2775098.html

相关图片

相关文章