У меня есть запрос, который мне нужен в моем приложении Django, который мне нужно было оптимизировать вручную.Но чтобы запрос выполнялся быстро, мне нужно сказать Postgres «не используйте параллелизм в этом».
Я думал, что это сработает:
from django.db import connection
cursor = connection.cursor()
# start a transaction so that PGBouncer runs the next statements
# on the same connection
cursor.execute("begin")
# turn off parallelism for this next query
cursor.execute("set max_parallel_workers_per_gather = 0")
# run my query
cursor.execute("HAND-TUNED SELECT QUERY GOES HERE")
# process the cursor results
# Put this connection back in the PGBouncer pool, and reset
# max_parallel_workers_per_gather.
cursor.execute("rollback")
Но, похоже, это не работает.Мой запрос продолжает отображаться в моих журналах «медленных запросов», когда я запускаю его через сайт Django, и производительность остается низкой (4+ секунды с параллелизмом, 0,5 секунды без).
Есть ли способделать то, что мне нужно сделать?