Ofi*_*ris 18 postgresql pgadmin
我已将数据导入新数据库(大约 600m 行时间戳、整数、双精度)。然后我创建了一些索引并试图改变一些列(有一些空间不足的问题),数据库被清空了。
现在 pgAdmin III 告诉我“临时文件的大小”是 50G~+。
在Windows 2012 服务器上使用Posgres 9.4.1 。
数据库统计选项卡的屏幕截图:
Erw*_*ter 18
我在 pgAdmin 文档中什么也没找到,但源代码揭示了这些条目背后的查询(为 Postgres 9.2+ 添加):
归结为:
SELECT temp_files AS "Temporary files"
, temp_bytes AS "Size of temporary files"
FROM pg_stat_database db;
Run Code Online (Sandbox Code Playgroud)
而Postgres的手册中有详细信息pg_stat_database
:
tmp_files
bigint
此数据库中查询创建的临时文件数。无论创建临时文件的原因(例如,排序或散列)如何,也无论log_temp_files设置如何,都会计算所有临时文件。
temp_bytes
bigint
通过此数据库中的查询写入临时文件的数据总量。无论创建临时文件的原因如何,也无论log_temp_files设置如何,所有临时文件都会被计算在内。
请注意,这些值不会影响数据库的大小。但是它们表明您的设置work_mem
可能太低,因此许多排序操作会溢出到磁盘(与仅 RAM 相比非常慢)。
有关的:
要实际压缩数据库的大小:
测量尺寸:
旁白:WAL(预写日志)在 Postgres 中等同于 SQL Server 中的事务日志。在这个关于 SO 的相关答案中有很好的解释:
小智 12
根据:
http://www.postgresql.org/message-id/BLU0-SMTP179B92C5102247CD961A4B3CF2A0@phx.gbl
临时计数器(使用的文件和空间)显示自可能创建集群以来使用的所有临时文件的总数。它不反映临时文件使用的当前空间。
例如,我的系统显示使用了近 700GB 的临时文件,但 /var/lib/pgsql/9.3/data/base/pgsql_tmp 中临时文件占用的实际空间目前只有 53MB。