天天看點

PostgreSQL統計表占用空間

PostgreSQL提供了以下幾個方法檢視表(索引)所占用空間大小:

1. 自己查找pg_class

sde=# select relpages*8/1024||'M' as 占用空間,reltuples 記錄數 from pg_class where relname='gis_poi';
 占用空間 | 記錄數
----------+--------
 6M       |  26199
(1 行記錄)
sde=# select relpages*8/1024||'M' as 占用空間,reltuples 記錄數 from pg_class where relname='a57_ix1';
 占用空間 | 記錄數
----------+--------
 2M       |  26199
(1 行記錄)      
sde=# \dt+ gis_poi
                       關聯清單
 架構模式 |  名稱   |  類型  | 擁有者 |  大小   | 描述
----------+---------+--------+--------+---------+------
 sde      | gis_poi | 資料表 | sde    | 6872 kB |
 
sde=# \di+ a57_ix1
                           關聯清單
 架構模式 |  名稱   | 類型 | 擁有者 | 資料表  |  大小   | 描述
----------+---------+------+--------+---------+---------+------
 sde      | a57_ix1 | 索引 | sde    | gis_poi | 2096 kB |
(1 行記錄)      
sde=# select * from pgstattuple('gis_poi');
 table_len | tuple_count | tuple_len | tuple_percent | dead_tuple_count | dead_tuple_len | dead_tuple_percent | free_space | free_percent
-----------+-------------+-----------+---------------+------------------+----------------+--------------------+------------+--------------
   7004160 |       26199 |   6737921 |          96.2 |                0 |              0 |                  0 |     111360 |         1.59
(1 行記錄)
 
sde=# select * from pgstattuple('a57_ix1');
 table_len | tuple_count | tuple_len | tuple_percent | dead_tuple_count | dead_tuple_len | dead_tuple_percent | free_space | free_percent
-----------+-------------+-----------+---------------+------------------+----------------+--------------------+------------+--------------
   2146304 |       26199 |   1047960 |         48.83 |                0 |              0 |                  0 |     924984 |         43.1
(1 行記錄)      

繼續閱讀