postgresql 查看數據庫,表,索引,表空間以及大小


轉載 http://blog.51yip.com/pgsql/1525.html

1,查看數據庫

playboy=> \l                       //\加上字母l,相當於mysql的,mysql> show databases;
        List of databases
   Name    |  Owner   | Encoding
-----------+----------+----------
 playboy   | postgres | UTF8
 postgres  | postgres | UTF8
 template0 | postgres | UTF8
 template1 | postgres | UTF8

playboy=> select pg_database_size('playboy');    //查看playboy數據庫的大小
 pg_database_size
------------------
          3637896
(1 row)

playboy=> select pg_database.datname, pg_database_size(pg_database.datname) AS size from pg_database;    //查看所有數據庫的大小
  datname  |  size
-----------+---------
 postgres  | 3621512
 playboy   | 3637896
 template1 | 3563524
 template0 | 3563524
(4 rows)

playboy=> select pg_size_pretty(pg_database_size('playboy'));      //以KB,MB,GB的方式來查看數據庫大小
 pg_size_pretty
----------------
 3553 kB
(1 row)

 

2,查看多表

playboy=> \dt                      //相當於mysql的,mysql> show tables;
        List of relations
 Schema | Name | Type  |  Owner
--------+------+-------+---------
 public | test | table | playboy
(1 row)

 

3,查看單表

playboy=> \d test;                 //相當於mysql的,mysql> desc test;
            Table "public.test"
 Column |         Type          | Modifiers
--------+-----------------------+-----------
 id     | integer               | not null
 name   | character varying(32) |
Indexes: "playboy_id_pk" PRIMARY KEY, btree (id)

playboy=> select pg_relation_size('test');   //查看表大小
 pg_relation_size
------------------
                0
(1 row)

playboy=> select pg_size_pretty(pg_relation_size('test'));   //以KB,MB,GB的方式來查看表大小
 pg_size_pretty
----------------
 0 bytes
(1 row)

playboy=> select pg_size_pretty(pg_total_relation_size('test'));   //查看表的總大小,包括索引大小
 pg_size_pretty
----------------
 8192 bytes
(1 row)

 

4,查看索引

playboy=> \di                      //相當於mysql的,mysql> show index from test;
                List of relations
 Schema |     Name      | Type  |  Owner  | Table
--------+---------------+-------+---------+-------
 public | playboy_id_pk | index | playboy | test
(1 row)

playboy=> select pg_size_pretty(pg_relation_size('playboy_id_pk'));    //查看索大小
 pg_size_pretty
----------------
 8192 bytes
(1 row)

 

5,查看表空間,以及大小

playboy=> select spcname from pg_tablespace;         //查看所有表空間
  spcname
------------
 pg_default
 pg_global
(2 rows)

playboy=> select pg_size_pretty(pg_tablespace_size('pg_default'));   //查看表空間大小
 pg_size_pretty
----------------
 14 MB
(1 row)

 

6 統計數據庫中各表占用磁盤大小:

SELECT table_schema || '.' || table_name AS table_full_name, pg_size_pretty(pg_total_relation_size('"' || table_schema || '"."' || table_name || '"')) AS size
FROM information_schema.tables
ORDER BY pg_total_relation_size('"' || table_schema || '"."' || table_name || '"') DESC limit 20;

 

7.統計各數據庫占用磁盤大小:

SELECT d.datname AS Name,  pg_catalog.pg_get_userbyid(d.datdba) AS Owner,
    CASE WHEN pg_catalog.has_database_privilege(d.datname, 'CONNECT')
        THEN pg_catalog.pg_size_pretty(pg_catalog.pg_database_size(d.datname))
        ELSE 'No Access'
    END AS SIZE
FROM pg_catalog.pg_database d
    ORDER BY
    CASE WHEN pg_catalog.has_database_privilege(d.datname, 'CONNECT')
        THEN pg_catalog.pg_database_size(d.datname)
        ELSE NULL
    END DESC -- nulls first
    LIMIT 20

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM