PostgreSQL“临时文件的大小”


13

我已经将数据导入到新数据库中(大约600m行的时间戳,整数,双精度)。然后,我创建了一些索引,并尝试更改某些列(解决了空间不足的问题),数据库被清理。

现在pgAdmin III告诉我,“ 临时文件的大小 ”是50G〜+。

  1. 这些临时文件是什么?这些类似于SQL Server事务日志吗?
  2. 我如何摆脱它们,数据库似乎比应有的要大得多(数据库的总大小为91 GB)

Windows 2012服务器上使用Posgres 9.4.1

数据库统计信息选项卡的屏幕快照:

数据库统计信息选项卡的屏幕截图


“临时文件的大小”列值代表什么?
Ofiris

Answers:


12

我在pgAdmin文档中什么都没找到,但是源代码揭示了这些条目后面的查询(为Postgres 9.2+添加):

归结为:

SELECT temp_files AS "Temporary files"
     , temp_bytes AS "Size of temporary files"
FROM   pg_stat_database db;

Postgres手册则包含以下详细信息pg_stat_database

tmp_files bigint 由该数据库中的查询创建的临时文件数。无论创建临时文件的原因(例如排序或散列),以及log_temp_files设置如何,都对所有临时文件进行计数。

temp_bytes bigint 通过此数据库中的查询写入临时文件的数据总量。无论创建临时文件的原因以及log_temp_files设置如何,都会对所有临时文件进行计数。

请注意,这些值不会增加数据库的大小。但是它们表明您的设置work_mem可能太低,因此许多排序操作会溢出到磁盘上(与仅RAM相比这是非常慢的)。

有关:

实际压缩数据库的大小:

测量尺寸:

另外:WAL(预写日志)在Postgres中等同于SQL Server中的事务日志。在这个相关的答案上很好的解释:


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.