PostgreSQL如何查看哪些查询已经运行
我在我的计算机上有一个PostgreSQL数据库,并且我有一个应用程序在其上运行查询。PostgreSQL如何查看哪些查询已经运行
如何查看哪些查询在我的数据库上运行?
我使用Linux计算机和pgadmin。
打开服务器日志:
log_statement = all
这将记录每次调用数据库服务器。
我不会在生产性服务器上使用log_statement = all
。生成巨大的日志文件。
The manual about logging-parameters:
log_statement
(enum
),该SQL语句被记录控件。有效值为
none
(关闭),ddl
,mod
和all
(所有语句)。 [...]
重置log_statement
参数需要服务器重载(SIGHUP
)。重新启动是而不是必要的。阅读the manual on how to set parameters。
请勿将服务器日志与pgAdmin日志混淆。两件不同的事情!
如果您有权访问这些文件(对于远程服务器可能不是这种情况)并且正确设置,您还可以查看pgAdmin中的服务器日志文件。看看:Tools -> Server status
。详细了解manual for pgAdmin III中的服务器状态窗口。
我更喜欢用vim
(或您选择的编辑器/阅读器)阅读服务器日志文件。有关测井技术
日志存储在Installationfolder /数据/ pg_log文件夹时
Brandstetter我只会看到日志并关闭它。仅仅是为了使log_statement = all就足够了?我已经打开服务器状态,它询问我有关安装软件包的一些信息,但它打开了一个窗口并写道:此服务器不支持日志。我应该重新启动我的postgresql吗? – kamaci
@kamaci:我用附加信息修改了我的答案。按照我提供的更多链接。 –
PostgreSQL是非常先进的。日志设置被放置在postgresql.conf文件中。
日志格式通常设置为stderr。但建议使用CSV日志格式。为了使在
- log_destination = '标准错误,csvlog'
- logging_collector CSV格式变化=上
为了记录所有的查询,对于新安装,设置分非常有用。执行时间查询
- log_min_duration_statement = 0
为了查看数据库的主动查询,使用
- SELECT * FROM和pg_stat_activity
要记录特定查询设置查询类型
- log_statement = '所有' #无,DDL,国防部,所有
这是一个很好的链接有关记录的详细信息的查询
我发现日志文件位于/usr/local/var/log/postgres.log中,位于brew安装的mac上。
有关您的应用程序是什么样子以及它如何访问数据库的任何细节? –