10.12.2009, 18:50 | #9 |
Участник
|
ну вот. уже подходим плавно к тем понятиям, которые используются не аксаптой, а 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х таблицах, если попал в неумелые руки. |
|
Теги |
1c, платформа, сравнение систем |
|
|