Django中的原始查询比Postgres中的查询慢得多

时间:2014-11-29 20:11:23

标签: python sql django performance postgresql

我在Django应用程序中面临极慢(原始)查询的问题。奇怪的是,当我从shell启动隔离查询时(例如:python manage.py my_code_query),它并不慢,但是当我运行包含所有查询的整个程序时,它很慢(&#&# 34;块"始终在同一个查询;实际上它最终完成但它的速度比100x慢一些)。这就像问题之前的所有查询都在消耗内存并且在我的查询开始时没有足够的内存。直接从Postgres运行的查询完全没有问题。

我在某处(Django cursor.execute(QUERY) much slower than running the query in the postgres database)读到它可能是导致问题的Postgres中的work_mem设置但是他们不清楚他们从Django设置它的方式。我是否必须通过connection.cursor.execute()进行调用以设置work_mem参数?只有一次?

这可能是另一个问题,而不是work_mem设置吗?

任何提示都将非常感激。 谢谢, 帕特里克

1 个答案:

答案 0 :(得分:0)

受到该帖子(How can I tell Django to execute all queries using 10MB statement mem?)的启发,我在执行游标之前进行了此调用:

cursor.execute("set work_mem='100MB'") #set statement_mem does not work

现在正在及时运行。

- 编辑:嗯,那是昨天。今天它不再适时运行了。不知道为什么。