Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PostgreSql中的临时文件_Postgresql_Optimization - Fatal编程技术网

PostgreSql中的临时文件

PostgreSql中的临时文件,postgresql,optimization,Postgresql,Optimization,我的数据库大小正在增长到41GB,但当我创建备份时,它会变成2.4/2.5GB,为什么会有这么大的差异 我已经进行了一些真空、重新索引等操作,但大小仍然没有缩小,并且显示了19 GB的临时文件,但是当我签入C:\Program Files\PostgreSQL\10\data\base\pgsql\U tmp时,文件夹是空的 如何删除这些临时文件?有没有办法减小数据库大小? 编辑 查询以获取临时文件 SELECT temp_files AS "Temporary files" , t

我的数据库大小正在增长到41GB,但当我创建备份时,它会变成2.4/2.5GB,为什么会有这么大的差异

我已经进行了一些真空、重新索引等操作,但大小仍然没有缩小,并且显示了19 GB的临时文件,但是当我签入
C:\Program Files\PostgreSQL\10\data\base\pgsql\U tmp
时,文件夹是空的

如何删除这些临时文件?有没有办法减小数据库大小?

编辑

查询以获取临时文件

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

pg_stat_database
中的值是自服务器启动以来累积的,因此它不是当前使用的字节数。它是统计数据重置后使用的字节数

由于这是一个累积数字,因此它将不断增加,并且不会缩小,除非您重置统计数据

您可以使用重置这些统计信息(作为超级用户)

您的查询似乎确实使用了许多临时文件和临时空间。这可能表明你没有给Postgres足够的内存(例如,
work\u mem
temp\u buffers
),但这是另一个问题


这些临时文件也不是数据库转储的一部分,因为它们仅在查询执行期间使用

pg_dump
不包括索引数据,此外,自定义格式压缩备份。因此,如果您有很多索引,那么使用
pg_dump
进行的转储应该比实际数据库大小小得多。不相关,但是:在Windows上将数据目录放入
c:\Program Files
不是一个好主意。请显示导致您得出结论的查询和查询结果。不要将这些信息添加为评论,编辑问题。
select pg_stat_reset();