Не надо делать таких запросов.
- структура ограничений, а, следовательно, и план исполнения сильно зависят от входных параметров (includeEstimated,transByPeriod, tripId). Такое построение часто приводит к неожиданным зависаниям, даже при малом объеме выбираемых данных.
- разобраться через неделю, что делается в запросе сложно. А чтобы что-то подправить через месяц, придется полдня только вспоминать что же тут понаписано.
Предлагаю использовать queryRun или последовательность select cursor - while cursor - next cursor. И перестраивать запрос в заисимости от входных параметров, а не взрывать мозг SQL-серверу.
Попробуйте сами продумать план запроса. Какие ограничения должны примениться первыми, какие вторыми. Только после этого можно думать о применении "волшебных слов forcenestedloop forceselectorder"
Опишите простыми словами, что же вы тут пытаитесь выбрать.
|