gpt4 book ai didi

postgresql - 确定 PostgreSQL 中有问题的查询

转载 作者:行者123 更新时间:2023-11-29 12:22:50 25 4
gpt4 key购买 nike

有时我支持的 PostgreSQ 数据库重载。我需要查明导致数据库过载的确切查询。我在相关时间范围内创建了一个 pgFounie 输出: http://bit.ly/f2aikx

在那份报告中有一行
查询峰值:4 queries/s at 2011-03-15 10:41:06, 2011-03-15 10:44:18, 2011-03-15 10:48:25

尚不清楚所提到的时间戳是峰值的开始还是结束。

最佳答案

我不确定问题是什么,但我会尝试一些事情:

“查询峰值”指标指的是您看到每秒 4 个查询的峰值吞吐量的三秒。

以下是我将如何查明有问题的查询:

  1. 为此实例定义“重载”。这将帮助您确定真正导致问题的原因。让我们假设重载被定义为“慢查询”
  2. 检查 pgFouine 输出中的慢速查询。它有助于将它们分组到“花费最多时间的查询 (N)”部分。在那里查看,您还可以单击“显示示例”以查看一些让您感到悲伤的查询。
  3. 从其中一些查询中抽取样本,并对它们运行 EXPLAIN ANALYZE 以获得实际的执行计划。
  4. 查看同时运行的其他计划。这些可能会导致 I/O 争用
  5. 自己分析计划或使用 http://explain.depesz.com/分析您的执行计划。注意 table 上线轴之类的东西。
  6. 相应地调整查询或调整 PostgreSQL 设置。
  7. 冲洗并重复

从长远来看,我会更改 pgFouine 中的设置以仅记录执行时间超过 100 毫秒的查询。您可以使用 postgresql.conf 文件中的 log_min_duration_statement 设置来做到这一点。

关于postgresql - 确定 PostgreSQL 中有问题的查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5340956/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com