0
У меня есть подзапрос в where where, который сканирует полную таблицу при каждом ее вычислении.PostgreSQL предотвращает встраивание подзапроса с помощью OFFSET 0
SELECT k, j
FROM tab t1
WHERE t1.x > (SELECT AVERAGE(x) FROM tab t2 where t1.n = t2.n)
order by k, j
limit 100;
В плане запроса нет изменений, когда я добавляю OFFSET 0 в конец подзапроса.
SELECT k, j
FROM tab t1
WHERE t1.x > (SELECT AVERAGE(x) FROM tab t2 where t1.n = t2.n OFFSET 0)
order by k, j
limit 100;
Ссылаясь на это post. Будет ли оптимизационный забор «OFFSET 0», не работает в этом случае в том месте где?
Покажите '' explain' или объяснить analyze', когда речь идет о планах запросов пожалуйста. Если вы обфускаете/анонимизируете запрос, убедитесь, что он точно соответствует плану запроса. –