问题标签 [pg-stat-statements]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
758 浏览

postgresql - 如何解释 stddev_time 和 hit_percent

我启动了以下命令,显示在本文档中: https ://www.postgresql.org/docs/current/pgstatstatements.html

但我不知道如何解释stddev_time(显然这可以显示导致问题的查询)

而且我不明白如何解释以下值:

当它接近 0 或 100 时会更好吗?

0 投票
1 回答
259 浏览

postgresql - 使用 pg_stat_statements 可以聚合的查询有效地将可变数量的行插入 Postgres

为了减少我的数据库上的一些查询负载,我目前将多个查询一起批处理为一个INSERT具有可变行数的查询。这会产生如下查询:

由于行数不同,从pg_stat_statements扩展的角度来看,看起来运行了许多不同类型的查询。

我希望有效地批量插入几行,同时允许pg_stat_statements将所有查询统计信息整齐地聚合在一起。有什么方法可以用来实现这一点,也许是通过告诉pg_stat_statements这些都是相同的查询类型或使用准备好的语句?

0 投票
1 回答
549 浏览

greenplum - 如何在 greenplum 开源版本中使用 pg_stat_statements 扩展?

我正在尝试使用修改后的 greenplum 开源版本进行开发。greenplum 版本是 Greenplum Database 6.0.0-beta.1 build dev(基于 PostgreSQL 9.4.24)。

我想将 pg_stat_statements 扩展添加到我的数据库中,并且我确实设法按照https://www.postgresql.org/docs/9.5/pgstatstatements.html将它安装在数据库上。但是,此扩展程序无法按预期工作。它只记录不可计划的查询和实用程序查询。对于修改我的表的所有可计划查询,没有一条记录。

我的问题是,pg_stat_statements 是否与 greenplum 兼容?由于我没有使用官方版本,我想确保原始版本可以与 pg_stat_statements 一起使用。如果是这样,我如何使用它来跟踪 greeplum 中的所有 sql 查询?谢谢。

以下是不记录我的选择查询的示例。

0 投票
1 回答
476 浏览

sql - 为什么我的“CREATE INDEX CONCURRENTLY ..”命令被“SELECT FROM”查询阻止?(Postgres 9.6)

我正在运行迁移以创建索引,但迁移被另一个查询阻止。在发现有另一个查询阻止了我的迁移后,我解决了这个问题;取消阻塞查询后,我能够成功运行迁移。

(我的服务器在 Linux 上使用 Postgres 9.6)

以下是我发现我的迁移被阻止的方式:

返回以下结果:

我的迁移(查询)怎么可能CREATE INDEX CONCURRENTLY ..被查询阻止SELECT .. FROM ..?即使运行阻塞查询的进程处于僵尸状态,我也不明白我的索引创建查询如何被“SELECT .. FROM ..”查询阻塞。

任何人都可以提供有关这如何可能的见解吗?

如果有帮助,这是我的架构(针对这个问题进行了简化):

订单

id

widget_id

customer_id(FK 至Customers)

顾客

id

company_id(FK 至Companies)

公司

id

一些附加说明:

  • 我发现索引在我运行迁移大约 8 小时后被阻止。
  • 杀死阻塞查询后,我删除了idx_orders_on_widget_id索引并重新运行迁移以重新创建索引。
  • 第二次重新运行迁移后,索引创建在大约 10 分钟内完成
  • 服务器在 Linux 上运行 Postgres 9.6
0 投票
2 回答
64 浏览

postgresql-12 - 如何在 PostgreSQL 12 上的 Citus 数据库上链接协调员和工作人员的工作

我在 PostgresSQL 服务器上有 Citus 扩展。我想pg_stat_statements通过协调节点查看每个工作人员的统计信息。但是,没有与协调员和工作人员的表相匹配的列。有人知道我该怎么做吗?

我也对 PostgreSQL 如何计算 queryId 感兴趣。

所以pg_stat_statements协调器上的表格会显示如下:

虽然pg_stat_statements工作人员的表格会显示如下内容:

0 投票
1 回答
394 浏览

postgresql - 如何从 PostgreSQL 上的 pg_stat_statements 计算 queryId?

PostgreSQL 有这些监控表,特别是pg_stat_statements,包含这个列的名称queryId,我想知道它是如何计算的。如果有人知道我在哪里可以找到源代码,那将不胜感激。

所以pg_stat_statements表格会显示如下:

我对这123是如何计算的很感兴趣。

0 投票
1 回答
163 浏览

installation - 尝试创建扩展时出错:pg_stat_statement

我正在尝试安装 pg_stat_statements 这样做:

我明白了:

我已经安装了 postgresql-contrib 如下:

在错误中指定的位置找不到文件 pg_stat_statements.control,我应该下载它吗?或者它是如何工作的?

0 投票
1 回答
63 浏览

postgresql - 在阅读器实例上每小时隔离 pg_stat_statements

Aurora Postgres 11.8 我必须每小时在 Reader 实例上隔离 pg_stat_statements。在 Writer 实例上很简单,每小时创建一个表并备份 pg_stat_statements,然后使用 pg_stat_statements_reset() 清理 pg_stat_statements。

由于我无法在 Reader 上创建表,因此需要专家对此进行评论,一个想法是在 Writer 上创建 FDW 表并每小时复制数据,但是如何将 pg_stat_statements_reset() 与 Reader 上的表同步?对于复制和 pg_stat_statements_reset() 有两个单独的 cronjobs 看起来不像是一个健壮的解决方案。

来自 Oracle 背景,我很喜欢每小时的 ADDM 报告。pg_stat_statements 被发现是 ADDM 的一种令人满意的替代方案。我想按小时划分 pg_stat_statements 以获得更深入的分析,因为所有繁忙时间和非工作时间的单一摘要意义不大。

谢谢

0 投票
1 回答
320 浏览

sql - pg_stat_statements_reset() 时间表

极光 Postgres 11.8

非超级管理员用户是否可以运行 pg_stat_statements_reset()?

细节:

必须每小时安排一次 pg_stat_statements_reset(),因为 Aurora Postgres 11.8 中没有可用的内部调度程序,我想使用 lambda/cronjob,因为只有超级管理员可以运行它,所以在我的环境中暴露超级管理员密码是一个安全风险在 lambda/cronjob 中。那么在我的情况下有什么出路吗?可以有一个从非超级用户开始执行然后在等内切换用户的sp吗?

谢谢

0 投票
3 回答
6641 浏览

postgresql - 带有 postgres 的 DOCKER 容器,警告:无法打开统计文件“pg_stat_tmp/global.stat”:不允许操作

我有一个使用 .yml、Dockerfile(s) 等从几个不同的图像构建的 DOCKER 容器。到目前为止,一切都构建并运行良好,除了我在标题中看到的这个问题:

该数据库索引映射到 Docker 包根目录中主机上的文件夹,就数据库而言,其他一切似乎都工作正常。我使用的是 Mac,但如果我从 CLI 列出 DB 文件夹的权限,我会得到:

pg_stat 文件夹实际上是空的。

和 pg_stat_temp 有:

.yml 文件有这个:

鉴于它是一个 Docker 容器,这是否可以忽略。

在 UBUNTU 上添加关于相同设置的评论。

数据库文件夹:

drwx------ 19 systemd-coredump root 4096 Jun 30 13:12 OrthancIndex

数据库:

pg_stat_temp

我实际上在 UBUNTU 上遇到了同样的错误:

虽然这里的用户和组是 systemd-coredump。