如何在redshift中查找数据库,架构,表的大小

编程入门 行业动态 更新时间:2024-10-21 17:32:28
本文介绍了如何在redshift中查找数据库,架构,表的大小的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

团队

我的redshift版本是:

my redshift version is:

PostgreSQL 8.0.2 on i686-pc-linux-gnu, compiled by GCC gcc (GCC) 3.4.2 20041017 (Red Hat 3.4.2-6.fc3), Redshift 1.0.735

如何找出数据库大小,表空间,架构大小&桌子大小?

how to find out database size, tablespace, schema size & table size ?

但以下版本在redshift中不起作用(对于以上版本)

but below are not working in redshift ( for above version )

SELECT pg_database_size('db_name'); SELECT pg_size_pretty( pg_relation_size('table_name') );

是否有其他方法可以找到类似oracle(从DBA_SEGMENTS)

Is there any alternate to find out like oracle ( from DBA_SEGMENTS )

对于tble的大小,我有以下查询,但不确定MBYTES的确切功能.对于第三行,MBYTES =372.这意味着372 MB?

for tble size, i have below query, but not sure about exact menaing of MBYTES. FOR 3rd row, MBYTES = 372. it means 372 MB ?

select trim(pgdb.datname) as Database, trim(pgn.nspname) as Schema, trim(a.name) as Table, b.mbytes, a.rows from ( select db_id, id, name, sum(rows) as rows from stv_tbl_perm a group by db_id, id, name ) as a join pg_class as pgc on pgc.oid = a.id join pg_namespace as pgn on pgn.oid = pgc.relnamespace join pg_database as pgdb on pgdb.oid = a.db_id join (select tbl, count(*) as mbytes from stv_blocklist group by tbl) b on a.id=b.tbl order by a.db_id, a.name; database | schema | table | mbytes | rows ---------------+--------------+------------------+--------+---------- postgres | public | company | 8 | 1 postgres | public | table_data1_1 | 7 | 1 postgres | proj_schema1 | table_data1 | 372 | 33867540 postgres | public | table_data1_2 | 40 | 2000001 (4 rows)

推荐答案

以上答案并不总是为使用的表空间提供正确答案. AWS支持已将此查询使用:

The above answers don't always give correct answers for table space used. AWS support have given this query to use:

SELECT TRIM(pgdb.datname) AS Database, TRIM(a.name) AS Table, ((b.mbytes/part.total::decimal)*100)::decimal(5,2) AS pct_of_total, b.mbytes, b.unsorted_mbytes FROM stv_tbl_perm a JOIN pg_database AS pgdb ON pgdb.oid = a.db_id JOIN ( SELECT tbl, SUM( DECODE(unsorted, 1, 1, 0)) AS unsorted_mbytes, COUNT(*) AS mbytes FROM stv_blocklist GROUP BY tbl ) AS b ON a.id = b.tbl JOIN ( SELECT SUM(capacity) AS total FROM stv_partitions WHERE part_begin = 0 ) AS part ON 1 = 1 WHERE a.slice = 0 ORDER BY 4 desc, db_id, name;

更多推荐

如何在redshift中查找数据库,架构,表的大小

本文发布于:2023-07-08 20:14:23,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1080263.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:架构   大小   数据库   如何在   redshift

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!