Показать сообщение отдельно
Старый 10.12.2009, 18:50   #91  
Vezunchik is offline
Vezunchik
Участник
 
24 / 7 (1) +
Регистрация: 10.12.2009
ну вот. уже подходим плавно к тем понятиям, которые используются не аксаптой, а SQL.
"possible execution plans"
это не запросы, а именно планы выполнения запроса, который выбирается наиболее оптимальный исходя из нескольких параметров, это как найти ближайшее расстояние из точки А в Б с учетом пробок, качества дороги, расстояния, времени суток и еще кучи параметров.
"Some complex SELECT statements"
это не 8 или 16 таблиц, а как Вы правильно сказали подзапросы или несколько селектов.
а запрос "тупо не оптимизируется" как раз таки, при указании forceSelectOrder, если я правильно понял и он переходит в FORCEORDER хинт запроса. а если это не так, тогда я даже и не знаю зачем эта опция нужна. может ее оставили для совместимости.
ну и напоследок:
"In these cases, the query optimizer does not analyze all possible combinations. Instead, it uses complex algorithms to find an execution plan that has a cost reasonably close to the minimum possible cost."
совсем не говорит о том, что ПЛАН ВЫПОЛНЕНИЯ не строится оптимальным. он выбирается исходя из алгоритма ядра. это конечно загадка в общем виде, но за 6 лет экспериментирования с SQL Server напрямую (не используя СУБД интерпретаторы запросов) я еще ни разу не столкнулся, чтобы серверу налево и направо советовали указывать хинт FORCEORDER. это исключительные случаи, которые даже не 1 на 100, а 1 на несколько миллионов наверное.

у сервера может крышу снести и на 2х таблицах, если попал в неумелые руки.