greenplum分区表查看所占空间大小
2013-09-05 18:10
351 查看
在使用greenplum数据库的时候,有的时候想要查看表所占用空间的大小,会使用如下二个函数pg_relation_size和pg_size_pretty.
前者用来查看数据大小,后者是human readable的调整.方法如下:
select pg_size_pretty(pg_relation_size('relation_name')) ;
select pg_size_pretty(pg_relation_size(oid)) ;
但是,对于分区表而言,这个方法就没有用了,会发现使用后表的大小为0bytes.原因在于:GP的分区表的主表只是一个表定义,其实际数据内容存储在继承父表的分区子表里面了.上网查了一下,没发现有相应的函数,干脆写了个函数来实现.
前者用来查看数据大小,后者是human readable的调整.方法如下:
select pg_size_pretty(pg_relation_size('relation_name')) ;
select pg_size_pretty(pg_relation_size(oid)) ;
但是,对于分区表而言,这个方法就没有用了,会发现使用后表的大小为0bytes.原因在于:GP的分区表的主表只是一个表定义,其实际数据内容存储在继承父表的分区子表里面了.上网查了一下,没发现有相应的函数,干脆写了个函数来实现.
-- Function: calc_partition_table(character varying, character varying) -- DROP FUNCTION calc_partition_table(character varying, character varying); CREATE OR REPLACE FUNCTION calc_partition_table(v_schemaname character varying, v_tablename character varying) RETURNS bigint AS $BODY$ DECLARE v_calc BIGINT := 0; v_total BIGINT := 0; v_tbname VARCHAR(200); cur_tbname cursor for select schemaname||'.'||partitiontablename as tb from pg_partitions where schemaname=v_schemaname and tablename=v_tablename; BEGIN OPEN cur_tbname; loop FETCH cur_tbname into v_tbname; if not found THEN exit; end if; EXECUTE 'select pg_relation_size('''||v_tbname||''')' into v_calc; v_total:=v_total+v_calc; end loop; CLOSE cur_tbname; RETURN v_total; end; $BODY$ LANGUAGE plpgsql VOLATILE; ALTER FUNCTION calc_partition_table(character varying, character varying) OWNER TO gpadmin;
相关文章推荐
- greenplum分区表查看所占空间大小
- greenplum 表管理及查看分区表占空间大小
- greenplum分区表查看所占空间大小
- oracle下查看表、索引、分区表用空间大小
- 查看 MySQL 数据库中每个表占用的空间大小
- 查看Oracle数据库表空间大小(空闲、已使用),是否要增加表空间的数据文件
- linux下查看某目录占用的空间大小
- linux下使用 du查看某个文件或目录占用磁盘空间的大小
- 在linux中查看磁盘空间的大小
- SQL Server查看所有表大小,所占空间
- SQL Server查看所有表所占空间大小
- linux下使用 du查看某个文件或目录占用磁盘空间的大小
- 查看Linux磁盘空间大小
- 看表空间大小,查询表空间名的表空间文件存放位置,矿展表空间,查看表空间名称
- Oracle 查看表空间的大小
- 创建表空间以及用户,授予权限,查看表空间名称及大小,物理文件的名称及大小,数据库的创建日期和归档方式,数据库的版本,数据库库对象,表空间的使用情况,表空间读写
- 查看 MySQL 数据库中每个表占用的空间大小
- postgresql 查看数据库,表,索引,表空间以及大小
- Oracle 查看表空间的大小及使用情况sql语句
- PostgreSQL查看数据库,索引,表,表空间大小