![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
200 как отключить авто оптимизацию запроса? [MSSQL]
Vadim S © (2003-10-07 12:40:00)
Есть запрос
SELECT SKLAD2.KOD, KOLVO.ID_RAZMER, KOLVO.ID_ROST, SKLADS.ID_SKLAD, COUNT(*) AS Expr1
FROM KOLVO,SKLADS,SKLAD2
WHERE KOLVO.ID_TOVAR = SKLAD2.ID_TOVAR AND KOLVO.ID_SKLAD = SKLADS.ID_SKLAD AND (SKLAD2.KOD LIKE "XCOD")
GROUP BY SKLAD2.KOD, KOLVO.ID_RAZMER, KOLVO.ID_ROST, SKLADS.ID_SKLAD
ORDER BY SKLAD2.KOD, KOLVO.ID_RAZMER, KOLVO.ID_ROST, SKLADS.ID_SKLAD
SQL2000 преобразует его к
SELECT SKLAD2.KOD, KOLVO.ID_RAZMER, KOLVO.ID_ROST, SKLADS.ID_SKLAD, COUNT(*) AS Expr1
FROM KOLVO
INNER JOIN SKLADS ON KOLVO.ID_SKLAD = SKLADS.ID_SKLAD
INNER JOIN SKLAD2 ON KOLVO.ID_TOVAR = SKLAD2.ID_TOVAR
WHERE (SKLAD2.KOD LIKE "XKOD")
GROUP BY SKLAD2.KOD, KOLVO.ID_RAZMER, KOLVO.ID_ROST, SKLADS.ID_SKLAD
ORDER BY SKLAD2.KOD, KOLVO.ID_RAZMER, KOLVO.ID_ROST, SKLADS.ID_SKLAD
Как отключить автооптимизацию, чтобы запросы выполнялись "как есть"?
А что FROM выполняется медленней INNER JOIN ???
Vadim S (2003-10-07 13:49:00) [1]
Правильный ответ был
SET FORCEPLAN OFF (уже подсказали)
Всем спасибо.
ZrenBy (2003-10-07 13:49:00) [2]
>>INNER JOIN SKLADS ON KOLVO.ID_SKLAD = SKLADS.ID_SKLAD
>>INNER JOIN SKLAD2 ON KOLVO.ID_TOVAR = SKLAD2.ID_TOVAR
>>WHERE (SKLAD2.KOD LIKE "XKOD")
Здесь нет абсолютно никакой оптимизации.
Просто все приведено к грамотному стилю.
Горяздо прозрачней, когда в секции join - критерии связи,
а в секции where - критерии отбора.
Fiend (2003-10-07 13:39:00) [3]
оптимизацию делают не QA и EM, ее выполняет сервер. если будете выполнять динамический запрос, тоже будет оптимизация.
Совет: не надо отказываться от оптимизации сервером, ибо он достаточно "умный" чтобы сделать ее правильно! Не надейтесь его обыграть на этом поле.
stone (2003-10-07 13:30:00) [4]
А ты делай в Query Analyzer
Хотя он же не зря оптимизирует, JOIN правильнее будет в отношении рационального использования индексов
Vadim S (2003-10-07 13:21:00) [5]
Как только на "!"
нажимаю или на "V" (check)
Сразу идет оптимизация.
PS Все это яделаю в EM.
Sedunov Vitaly (2003-10-07 13:16:00) [6]
Можно запускать через exec(<строка запроса>) и тогда, на мой взгляд, оптимизации не будет.