Кого-кого я не выполнял?
Проблема, ясное дело, в планировщике, а не в конкретной тактике. Вот только если ее отключить насовсем, то у тебя все работает уже вчера, и не надо шаманить над оценками, изучать планировщик и прочими глупостями заниматься.
Никакой критичный план от мерж джоина не зависит. Мерж джоин — это «оба-на, смотрите, как быстро я могу сделать этот кривой тяжелый запрос».
> Кого-кого я не выполнял?
Tuning.
http://wiki.postgresql.org/wiki/Tuning_Your_PostgreSQL_Server> Проблема, ясное дело, в планировщике, а не в конкретной тактике.
На каком основании был сделан этот вывод?
> Вот только если ее отключить насовсем, то у тебя все работает уже вчера
Или половина работавших вчера за секунды запросов сегодня работают по полчаса каждый. Т.е. Вы слишком обобщаете — то, что Вам повезло, не значит, что это вообще хорошая идея.
> и не надо шаманить над оценками, изучать планировщик и прочими глупостями заниматься.
Надо cost-ы настраивать адекватно хотя бы. Не делать этого как раз глупость, и в таком случае удивляться плохому планированию не стоит. Вы понимаете, что планирование целиком и полностью зависит от этих констант и статистики?
> Никакой критичный план от мерж джоина не зависит.
Повезло Вам. :) Merge join — это единственный способ быстро выполнить некоторые виды запросов, по идее. Не у всех они есть, конечно.