Database PostgreSQL如何查看已运行的查询
我的计算机上有一个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语句参数需要重新加载
我使用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:我用额外的信息修改了我的答案。按照我提供的链接了解更多信息。这似乎只是记录插入和查询失败时出现的错误,答案很有用。