Database PostgreSQL如何查看已运行的查询

Database PostgreSQL如何查看已运行的查询,database,postgresql,pgadmin,Database,Postgresql,Pgadmin,我的计算机上有一个PostgreSQL数据库,我有一个在上面运行查询的应用程序 如何查看在我的数据库上运行了哪些查询 我使用Linux计算机和pgadmin。打开服务器日志: log_statement = all 这将记录对数据库服务器的每次调用 我不会在生产服务器上使用log\u statement=all。产生巨大的日志文件。 log\u语句(enum) 控制记录哪些SQL语句。有效值包括none(关闭)、ddl、mod和all(所有语句)。[……] 重置log\u语句参数需要重新加载

我的计算机上有一个PostgreSQL数据库,我有一个在上面运行查询的应用程序

如何查看在我的数据库上运行了哪些查询


我使用Linux计算机和pgadmin。

打开服务器日志:

log_statement = all
这将记录对数据库服务器的每次调用

我不会在生产服务器上使用
log\u statement=all
。产生巨大的日志文件。

log\u语句
enum

控制记录哪些SQL语句。有效值包括
none
(关闭)、
ddl
mod
all
(所有语句)。[……]

重置
log\u语句
参数需要重新加载服务器(
SIGHUP
)。不需要重新启动。阅读

不要将服务器日志与pgAdmin日志混淆。两件不同的事

如果您有权访问这些文件(远程服务器可能不是这样),还可以在pgAdmin中查看服务器日志文件并正确设置。在pgadmin III中,查看:
Tools->Server status
。该选项已在pgadmin4中删除


我更喜欢使用
vim
(或您选择的任何编辑器/读取器)读取服务器日志文件。

PostgreSql在日志记录技术方面非常先进

日志存储在
Installationfolder/data/pg\u日志文件夹中。而日志设置则放在
postgresql.conf
文件中

日志格式通常设置为
stderr
。但建议使用CSV日志格式。为了在中启用CSV格式更改

log_destination = 'stderr,csvlog'   
logging_collector = on
为了记录所有查询(对新安装非常有用),请设置查询的最小执行时间

log_min_duration_statement = 0
要查看数据库上的活动查询,请使用

SELECT * FROM pg_stat_activity
要记录特定查询,请设置查询类型

log_statement = 'all'           # none, ddl, mod, all

有关日志查询的更多信息,请参阅。

我在brew的mac安装上找到了/usr/local/var/log/postgres.log上的日志文件。

在postgres 10.6中使用Django时,默认情况下启用了日志记录,我可以简单地执行以下操作:

tail -f /var/log/postgresql/*

Ubuntu 18.04、django 2+、python3+

您可以在pg_日志文件夹中看到日志配置是否在postgresql.conf中使用此日志目录名启用。

有关应用程序外观和访问数据库方式的详细信息?Brandstetter我将只查看日志并将其关闭。仅仅让log_语句=all就足够了吗?我已打开服务器状态。它询问我有关安装软件包的问题,但它打开了一个窗口并写道:日志不适用于此服务器。我应该重新启动postgresql吗?@kamaci:我用额外的信息修改了我的答案。按照我提供的链接了解更多信息。这似乎只是记录插入和查询失败时出现的错误,答案很有用。