使用性能详情查看临时文件使用情况 - Amazon Relational Database Service

使用性能详情查看临时文件使用情况

可以使用性能详情,通过开启指标 temp_bytestemp_files 来查看临时文件使用情况。性能详情中的视图不显示生成临时文件的特定查询,但是,当您将性能详情与针对 pg_ls_tmpdir 显示的查询相结合时,可以排查、分析并确定查询工作负载的变化。

  1. 在性能详情控制面板中,选择管理指标

  2. 选择数据库指标,然后选择 temp_bytestemp_files 指标,如下图所示。

    图表中显示的指标。
  3. Top SQL 选项卡中,选择首选项图标。

  4. 首选项窗口中,打开 Top SQL 选项卡中显示的以下统计数据,然后选择继续

    • 临时写入次数/秒

    • 临时读取次数/秒

    • 临时批量写入/调用

    • 临时批量读取/调用

  5. 当临时文件与针对 pg_ls_tmpdir 显示的查询相组合时,临时文件将被分解,如以下示例所示。

    显示临时文件使用情况的查询。

当您的工作负载中排名靠前的查询经常创建临时文件时,就会发生 IO:BufFileReadIO:BufFileWrite 事件。通过查看“数据库负载”和“热门 SQL”部分中的平均活动会话(AAS),您可以使用性能详情来确定在 IO:BufFileReadIO:BufFileWrite 上等待的热门 SQL。

图中的 IO:BufFileRead 和 IO:BufFileWrite。

有关如何使用性能详情按等待事件分析热门查询和负载的更多信息,请参阅“Top SQL”(主要 SQL)选项卡概览。您应该识别和调整导致临时文件使用量和相关等待事件增加的查询。有关这些等待事件和补救措施的更多信息,请参阅 IO:BufFileRead 和 IO:BufFileWrite

注意

work_mem 参数控制排序操作何时耗尽内存以及结果何时写入临时文件中。我们建议您不要将此参数的设置更改为高于默认值,因为这将允许每个数据库会话消耗更多内存。此外,执行复杂联接和排序的单个会话可以执行并行操作,其中每个操作都会消耗内存。

作为最佳实践,当您有一个包含多个联接和排序的大型报告时,请使用 SET work_mem 命令在会话级别设置此参数。然后,更改仅应用于当前会话,而不会全局更改该值。