使用性能详情查看临时文件使用情况
可以使用性能详情,通过开启指标 temp_bytes 和 temp_files 来查看临时文件使用情况。性能详情中的视图不显示生成临时文件的特定查询,但是,当您将性能详情与针对 pg_ls_tmpdir
显示的查询相结合时,可以排查、分析并确定查询工作负载的变化。
-
在性能详情控制面板中,选择管理指标。
-
选择数据库指标,然后选择 temp_bytes 和 temp_files 指标,如下图所示。
-
在 Top SQL 选项卡中,选择首选项图标。
-
在首选项窗口中,打开 Top SQL 选项卡中显示的以下统计数据,然后选择继续。
-
临时写入次数/秒
-
临时读取次数/秒
-
临时批量写入/调用
-
临时批量读取/调用
-
-
当临时文件与针对
pg_ls_tmpdir
显示的查询相组合时,临时文件将被分解,如以下示例所示。
当您的工作负载中排名靠前的查询经常创建临时文件时,就会发生 IO:BufFileRead
和 IO:BufFileWrite
事件。通过查看“数据库负载”和“热门 SQL”部分中的平均活动会话(AAS),您可以使用性能详情来确定在 IO:BufFileRead
和 IO:BufFileWrite
上等待的热门 SQL。
有关如何使用性能详情按等待事件分析热门查询和负载的更多信息,请参阅“Top SQL”(主要 SQL)选项卡概览。您应该识别和调整导致临时文件使用量和相关等待事件增加的查询。有关这些等待事件和补救措施的更多信息,请参阅 IO:BufFileRead 和 IO:BufFileWrite。
注意
work_mem
作为最佳实践,当您有一个包含多个联接和排序的大型报告时,请使用 SET work_mem
命令在会话级别设置此参数。然后,更改仅应用于当前会话,而不会全局更改该值。