标签: pg-stat-statements

pg_stat_statements已启用,但该表不存在

我已经启动了postgresql-9.4,并且我最近在官方文档的帮助下启用了pg_stat_statements模块.

但是我在使用时遇到以下错误:

postgres=# SELECT * FROM pg_stat_statements;
ERROR:  relation "pg_stat_statements" does not exist
LINE 1: SELECT * FROM pg_stat_statements;


postgres=# SELECT pg_stat_statements_reset();
ERROR:  function pg_stat_statements_reset() does not exist
LINE 1: SELECT pg_stat_statements_reset();
Run Code Online (Sandbox Code Playgroud)

我使用postgres用户登录psql.我还检查了可用的扩展名列表:

postgres=# SELECT * FROM pg_available_extensions WHERE name = 'pg_stat_statements'
;
        name        | default_version | installed_version |                          comment                          
--------------------+-----------------+-------------------+-----------------------------------------------------------
 pg_stat_statements | 1.2             |                   | track execution statistics of all SQL statements executed
(1 row)
Run Code Online (Sandbox Code Playgroud)

这是扩展版本查询的结果:

postgres=# SELECT * FROM pg_available_extension_versions WHERE name = 'pg_stat_statements';
        name        | …
Run Code Online (Sandbox Code Playgroud)

postgresql psql pg-stat-statements

15
推荐指数
2
解决办法
2万
查看次数

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

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

index-db_1   | 2021-02-22 23:18:33.388 UTC [31] WARNING:  could not open statistics file "pg_stat_tmp/global.stat": Operation not permitted
Run Code Online (Sandbox Code Playgroud)

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

-rw-------@  1 sscotti  staff      3 Feb 22 11:01 PG_VERSION
drwx------@  6 sscotti  staff    192 Feb 22 11:54 base
drwx------@ 60 sscotti  staff   1920 Feb 22 16:00 global
drwx------@  2 sscotti  staff     64 Feb 22 11:01 pg_commit_ts
drwx------@  2 sscotti  staff     64 Feb 22 11:01 pg_dynshmem
-rw-------@  1 sscotti  staff   4782 Feb …
Run Code Online (Sandbox Code Playgroud)

postgresql logging docker pg-stat-statements

14
推荐指数
2
解决办法
2175
查看次数

如何删除Postgres扩展

我为PostgreSQL 启用了扩展名pg_stat_statements

create EXTENSION pg_stat_statements;
Run Code Online (Sandbox Code Playgroud)

如何在PostgreSQL 9.x中停止使用扩展名pg_stat_statements

即使是原始文档也不包含任何示例.

postgresql pg-stat-statements

10
推荐指数
2
解决办法
5508
查看次数

Heroku + Apartment PG ::错误:错误:函数pg_stat_statements_reset()不存在

我在Rails 4中使用Apartment gem来支持Heroku上的Postgres 9.3.3中的多租户.

Apartment gem创建新租户时发生错误.

深入调查显示已创建架构,但内部没有表格.

Heroku日志显示错误:

PG::Error: ERROR:  function pg_stat_statements_reset() does not exist
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails-4 heroku-postgres postgresql-9.3 apartment-gem pg-stat-statements

9
推荐指数
1
解决办法
1489
查看次数

pg_stat_statements 的时间表是什么

我想知道 postgres 中的“pg_stat_statements”视图。数据的时间范围是什么?它是否显示过去 24 小时内执行的查询或执行的整体查询?由于该表不包含任何时间戳。

sql database postgresql postgresql-9.2 pg-stat-statements

5
推荐指数
2
解决办法
3754
查看次数

明确区分 pg_stat_statements 中的相似查询?

pg_stat_statements(谢天谢地)在规范化查询以聚合统计数据方面非常聪明,无论您传递什么参数。但是,我面临这样一种情况,即从我们应用程序的许多位置调用特定查询,我想根据这些不同位置获得单独的统计信息。受Marginalia 库的启发,我尝试附加 SQL 注释来注释查询。不幸的是它不起作用。看这个例子:

SELECT * FROM users WHERE email = 'a@b.c' /* action: signup */
SELECT * FROM users WHERE email = 'x@y.z' /* action: login */
Run Code Online (Sandbox Code Playgroud)

发生的情况是 pg_stat_statements 存储查询的规范化表示及其看到的第一个评论:

SELECT * FROM users WHERE email = $1 /* action: signup */
Run Code Online (Sandbox Code Playgroud)

然后,如果我用不同的评论(或根本没有评论)调用相同的查询,统计信息将被聚合到同一个项目中。从规范化的查询表示中有效地忽略了注释。

有什么方法可以调用等效的 SQL 查询,但让 pg_stat_statements 单独跟踪它们吗?

sql postgresql pg-stat-statements

3
推荐指数
1
解决办法
200
查看次数

如何解释 stddev_time 和 hit_percent

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

SELECT query, 
       calls, 
       total_time, 
       rows, 
       100.0 * shared_blks_hit / nullif(shared_blks_hit + shared_blks_read, 0) AS hit_percent
FROM pg_stat_statements 
ORDER BY total_time DESC 
LIMIT 5;
Run Code Online (Sandbox Code Playgroud)

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

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

100.0 * shared_blks_hit / nullif(shared_blks_hit + shared_blks_read, 0) AS hit_percent
Run Code Online (Sandbox Code Playgroud)

接近 0 还是 100 比较好?

postgresql pg-stat-statements

3
推荐指数
1
解决办法
1355
查看次数