我使用PostgreSQL 9.2 版本,发现tmp文件高达了100G。为什么会出现这种情况,怎么处理?
如果有笛卡尔乘积或者大表的排序或者hash表的操作,会使用临时文件来存储中间过程的数据。如果频繁的进行上述操作,临时文件会快速增长。重启PostgreSQL可以解决这个问题。另外建议用户设置temp_file_limit 为磁盘空间的10 %。
temp_file_limit的详细解释如下:
Enter temp_file_limit, a parameter added by Mark Kirkwood to PostgreSQL 9.2. This is a limit on per-session usage of temporary files for sorts, hashes, and similar operations.
If a user goes over the limit, their query gets cancelled and they see an error. This is an excellent way to prevent a single user, or a bad application change, from DOSing your database server. Set it to something high; I'm using 10GB or 20GB, or 10% of available disks space, whichever is less. But even a high limit like that will save you from some unexpected downtime.
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。