我们正在优化一个由 Django 支持的网站,因此我们正在分析 PostgreSQL 日志——寻找可以以某种方式调整的长时间运行的查询。
我们偶然发现了某种类型的(有时非常)长时间运行的查询,我们无法找到其来源。它们看起来像这样:
COPY public.my_table_name (id, field1, field2, field3, ...) TO stdout;
这些查询的原因可能是什么?它们很少见,但最多可以运行一分钟!这是 PostgreSQL 内部的东西吗? Django 本身会触发它们吗?
最佳答案
这些很可能是由 pg_dump 发出的,正如您所说,您正在使用它来备份数据库。
为了确认是这种情况,我建议您更改日志记录,以便它显示发出命令的连接的详细信息,包括应用程序名称。您可以在 logging section of the manual 中找到有关如何配置它的详细信息。 .
例如,您可以将 log_line_prefix
设置为 %a %r %p
,其中包括应用程序名称、远程 IP/端口和后端 PID(我有时会发现有用)。
关于sql - 使用 Django 时神秘的 PostgreSQL 日志条目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32532598/