|
|
|
Почему Exists вместо IN?
|
|||
|---|---|---|---|
|
#18+
Почему в подзапросах лучше применять EXISTS вместо IN? Верно ли утверждение что SQL сервер прекращает извлечение множества результатов, удовлетворяющему условию WHERE в подзапросе, если хотя бы одна строка удовлетворяет условию, что и достигается использованием оператора EXISTS. Заранее благодарен. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.06.2002, 23:25:00 |
|
||
|
Почему Exists вместо IN?
|
|||
|---|---|---|---|
|
#18+
должен выпрыгивать как только встретит искомое значение в первый раз. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.06.2002, 23:52:16 |
|
||
|
Почему Exists вместо IN?
|
|||
|---|---|---|---|
|
#18+
Да, вроде бы в книге так написано. IN вообще надо стараться использовать как можно реже. Вложенные запросы очень ресурсоемки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.06.2002, 10:32:17 |
|
||
|
Почему Exists вместо IN?
|
|||
|---|---|---|---|
|
#18+
> Верно ли утверждение что SQL сервер прекращает извлечение множества результатов... Для sql2000 верно, для sql7.0 не верно. Оптимизатор sql7.0 выражения EXISTS и IN нагло преобразует к JOIN с последующим фильтром дублей, поэтому на семерке EXISTS и IN абсолютно одинаковы по эффективности. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.06.2002, 11:58:51 |
|
||
|
Почему Exists вместо IN?
|
|||
|---|---|---|---|
|
#18+
Так что, уважаемые знатоки - нужно ли мне быстренько переписывать подзапросы IN на EXISTS в SQL2000 ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.06.2002, 20:30:24 |
|
||
|
Почему Exists вместо IN?
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. Код: plaintext 1. Два запроса - и совершенно одинаковые execution планы. Так есть ли разница между IN и EXISTS в MSSQL2000? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.06.2002, 21:50:30 |
|
||
|
Почему 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 только к одному - никаких аксиом и ориентация только на план. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.06.2002, 12:30:27 |
|
||
|
|

start [/forum/topic.php?fid=46&msg=32033406&tid=1822234]: |
0ms |
get settings: |
9ms |
get forum list: |
20ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
58ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
59ms |
get tp. blocked users: |
1ms |
| others: | 235ms |
| total: | 404ms |

| 0 / 0 |
