在PostgreSQL中打开临时文件

w8rqjzmb  于 2023-06-22  发布在  PostgreSQL
关注(0)|答案(2)|浏览(240)

我们在PostgreSQL的temp文件夹中有大约200 GB的文件。是时候清理了但我不确定它是否安全。这就是为什么我想先看看这些文件。文件名如下所示:pgsql_tmp644088.0 .如何打开并阅读它们?使用记事本,我只能看到一些符号,例如:ЎҐЖ№T ipadinstagram%instagram_stories j‹74 .你的建议是什么?

cwdobuhd

cwdobuhd1#

只需重新启动PostgreSQL,它就会删除所有留下的临时文件。
通常,临时文件的存在时间不会超过查询的持续时间。检查长时间运行的查询。

wztqucjr

wztqucjr2#

不要手动删除临时文件。作为第一步,我将检查哪些操作正在使用临时文件。您可以使用一些选项来启用写入临时文件的查询日志:
1.启用log_tmp_files

1.使用pgbadger
1.查询表Pg_stat_statements,如下所示:
SELECT interval '1 milliseconds' * total_time AS total_exec_time,total_time / calls AS avg_exec_time_ms,temp_blks_written,query AS query FROM pg_stat_statements WHERE temp_blks_written > 0 ORDER BY temp_blks_written DESC LIMIT 20;
1.查询pg_stat_database以给予数据库级别的统计信息,如下所示:
选择datname,temp_files,pg_size_pretty(temp_bytes)作为temp_file_size FROM pg_stat_database order by temp_bytes desc;
1.运行EXPLAIN ANALYZE并将work_mem size与explain analyze打印的值进行比较。
一般建议将temp_file_limit设置为不同于-1(默认值)的值。确保使用正确的索引来优化查询。(小心地)调优work_mem。将statement_timeout设置为最佳值。

**请注意:**临时文件是在内存不足时创建的。

相关问题