
Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
20.06.2002, 23:25:00
|
|||
|---|---|---|---|
|
|||
Почему Exists вместо IN? |
|||
|
#18+
Почему в подзапросах лучше применять EXISTS вместо IN? Верно ли утверждение что SQL сервер прекращает извлечение множества результатов, удовлетворяющему условию WHERE в подзапросе, если хотя бы одна строка удовлетворяет условию, что и достигается использованием оператора EXISTS. Заранее благодарен. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
20.06.2002, 23:52:16
|
|||
|---|---|---|---|
|
|||
Почему Exists вместо IN? |
|||
|
#18+
должен выпрыгивать как только встретит искомое значение в первый раз. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
21.06.2002, 10:32:17
|
|||
|---|---|---|---|
|
|||
Почему Exists вместо IN? |
|||
|
#18+
Да, вроде бы в книге так написано. IN вообще надо стараться использовать как можно реже. Вложенные запросы очень ресурсоемки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
21.06.2002, 11:58:51
|
|||
|---|---|---|---|
|
|||
Почему Exists вместо IN? |
|||
|
#18+
> Верно ли утверждение что SQL сервер прекращает извлечение множества результатов... Для sql2000 верно, для sql7.0 не верно. Оптимизатор sql7.0 выражения EXISTS и IN нагло преобразует к JOIN с последующим фильтром дублей, поэтому на семерке EXISTS и IN абсолютно одинаковы по эффективности. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
21.06.2002, 20:30:24
|
|||
|---|---|---|---|
|
|||
Почему Exists вместо IN? |
|||
|
#18+
Так что, уважаемые знатоки - нужно ли мне быстренько переписывать подзапросы IN на EXISTS в SQL2000 ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
21.06.2002, 21:50:30
|
|||
|---|---|---|---|
|
|||
Почему Exists вместо IN? |
|||
|
#18+
Код: plaintext 1. 2. Код: plaintext 1. Два запроса - и совершенно одинаковые execution планы. Так есть ли разница между IN и EXISTS в MSSQL2000? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
22.06.2002, 12:30:27
|
|||
|---|---|---|---|
Почему Exists вместо IN? |
|||
|
#18+
Я думаю, что все еще зависит от того запроса, который обрабатывается в IN или EXISTS. Пример: Код: 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. Как видно из теста использование агрегатных функций на данном примере (я бы не сказал идеально - придумать на ходу ситуацию сложно) тормозит запрос 2 (EXISTS), причем план у него получается не кислый по сравнению (кстати одинаковыми) с планами 1 и 3 запросов. Я во всяком случае привык в SQL только к одному - никаких аксиом и ориентация только на план. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=46&mobile=1&tid=1822234]: |
0ms |
get settings: |
11ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
85ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
41ms |
get tp. blocked users: |
1ms |
| others: | 209ms |
| total: | 375ms |

| 0 / 0 |
