使用Django时神秘的PostgreSQL日志条目

时间:2015-09-11 21:47:27

标签: sql django performance postgresql logging

我们正在优化Django支持的网站,因此我们正在分析PostgreSQL日志 - 寻找可能以某种方式调整的长时间运行的查询。

我们偶然发现某种类型的(有时非常)长时间运行的查询,我们无法找到它的来源。它们看起来像这样:

COPY public.my_table_name (id, field1, field2, field3, ...) TO stdout;

这些查询可能是什么原因?它们相当罕见,但它们可以运行一分钟!这是PostgreSQL内部的东西吗? Django本身会触发它们吗?

1 个答案:

答案 0 :(得分:3)

这些很可能是由pg_dump发布的,正如您所说,您正在使用它来备份数据库。

为了确认这种情况,我建议您更改日志记录,以便显示发出命令的连接的详细信息,包括应用程序名称。您可以在logging section of the manual

中找到有关如何配置此内容的详细信息

例如,您可以将log_line_prefix设置为%a %r %p,其中包括应用程序名称,远程IP /端口和后端PID(我有时会发现它很有用)。