# 29.1.确定磁盘使用率

每个表都有一个主堆磁盘文件,其中存储了大部分数据。如果该表中有任何可能具有宽值的列,则可能还有一个与该表关联的TOAST文件,该文件用于存储太宽的值,无法轻松地放入主表中(请参阅)第70.2节).如果有,吐司桌上会有一个有效的索引。也可能有与基表关联的索引。每个表和索引都存储在一个单独的磁盘文件中——如果文件超过1GB,则可能不止一个文件。中介绍了这些文件的命名约定第70.1节.

可以通过三种方式监视磁盘空间:使用中列出的SQL函数表9.92,使用OID2名称模块,或使用手动检查系统目录。SQL函数是最容易使用的,通常推荐使用。本节的其余部分将通过检查系统目录来说明如何执行此操作。

在最近清空或分析的数据库上使用psql,可以发出查询以查看任何表的磁盘使用情况:

SELECT pg_relation_filepath(oid), relpages FROM pg_class WHERE relname = 'customer';

 pg_relation_filepath | relpages