Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
http://www.firebirdfaq.org/faq37/
|
|||
|---|---|---|---|
|
#18+
авторWhy is my query that uses IN or NOT IN slow? This is an issue with Firebird optimizer. In newer Firebird versions the problem with IN is fixed, but the problem with NOT IN remains. In any case, it is safe and often faster to use EXISTS and NOT EXISTS instead. Each IN and NOT IN query can be rewritten to use EXISTS and NOT EXISTS. авторAll contents are copyright © 2007-2014 FirebirdFAQ.org unless otherwise stated in the text. подскажите - до какой примерно версии этот совет актуален? Использую 2.1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.12.2014, 14:30 |
|
||
|
http://www.firebirdfaq.org/faq37/
|
|||
|---|---|---|---|
|
#18+
До сегодняшней. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.12.2014, 14:33 |
|
||
|
http://www.firebirdfaq.org/faq37/
|
|||
|---|---|---|---|
|
#18+
Cobalt747, в 2.5 NOT IN оптимизируется лучше, чем до 2.5. Но NOT EXISTS всё равно лучше. Но надо понимать, что это не эквивалентные запросы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.12.2014, 14:47 |
|
||
|
http://www.firebirdfaq.org/faq37/
|
|||
|---|---|---|---|
|
#18+
Cobalt747, 1. В 2.5 между IN и EXISTS вроде нет разницы по быстродействию 2. Насчёт замены NOT IN на NOT EXISTS вообще не очень верный совет. В некоторых ситуациях они не эквивалентны ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.12.2014, 14:49 |
|
||
|
http://www.firebirdfaq.org/faq37/
|
|||
|---|---|---|---|
|
#18+
Cobalt747 ты про field in (select..., или про field in (1, 2, 3... ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.12.2014, 14:53 |
|
||
|
http://www.firebirdfaq.org/faq37/
|
|||
|---|---|---|---|
|
#18+
Симонов Денис1. В 2.5 между IN и EXISTS вроде нет разницы по быстродействию ее и в 2.1 нет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.12.2014, 15:04 |
|
||
|
http://www.firebirdfaq.org/faq37/
|
|||
|---|---|---|---|
|
#18+
kdv, Я про Delete ... where Exist ( Select ...) vs Delete ... where ID in (Select ...) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.12.2014, 15:33 |
|
||
|
http://www.firebirdfaq.org/faq37/
|
|||
|---|---|---|---|
|
#18+
Cobalt747, Без разницы. Если надо разворачивать потоки, то только через EXECUTE BLOCK, в трёшке можно MERGE с DELETE применять. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.12.2014, 15:44 |
|
||
|
http://www.firebirdfaq.org/faq37/
|
|||
|---|---|---|---|
|
#18+
Симонов Денис, увы, не понял, при чём тут потоки. Хочется понять, будет ли сколь-либо существенная разница быстродействия в разном построении запроса: а) Delete ... where Exist ( Select ...) vs б) Delete ... where ID in (Select ...) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.12.2014, 17:19 |
|
||
|
http://www.firebirdfaq.org/faq37/
|
|||
|---|---|---|---|
|
#18+
Cobalt747, нет не будет. Потоки это про то с какой стороны запрос выполнять. Можно пробежаться по записям удаляемой таблицы и проверять их существование в другой таблице/запросе. А можно наоборот, по другой таблице отбирать удаляемые записи. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.12.2014, 17:28 |
|
||
|
http://www.firebirdfaq.org/faq37/
|
|||
|---|---|---|---|
|
#18+
Cobalt747Хочется понять, будет ли сколь-либо существенная разница быстродействия в разном построении запроса: а) Delete ... where Exist ( Select ...) vs б) Delete ... where ID in (Select ...) Для ФБ-3.0 (увы, но не для 2.5) на некоторых данных можно получить разницу. Но не между IN vs EXISTS, а между вариантами подзапроса. Если добавить внутрь кляузу 'order by <field>' (разумеется, при условии что <field> - индексное), то при большом объеме ведомого источника можно поиметь нехилый профит. Но это так, зарубка на будущее - вдруг кто сюда заглянет. Код: plaintext 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. ЗЫ. Секрет второго запроса - в плане, который для ФБ-3.х таков: Код: plaintext 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.12.2014, 23:27 |
|
||
|
http://www.firebirdfaq.org/faq37/
|
|||
|---|---|---|---|
|
#18+
Таблоид, хм... А ведь это можно было бы использовать чтобы сделать оптимизатор умнее. По идее он мог бы сам догадаться не строить битмап. Но для этого наверное надо рассматривать подзапросы в exists не как отдельные, а как semi-join с основным запросом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.12.2014, 23:41 |
|
||
|
|

start [/forum/search_topic.php?author=Poltergeist1&author_mode=last_topics&do_search=1]: |
0ms |
get settings: |
11ms |
get forum list: |
13ms |
get settings: |
10ms |
get forum list: |
12ms |
get settings: |
10ms |
get forum list: |
14ms |
get settings: |
9ms |
get forum list: |
13ms |
get settings: |
11ms |
get forum list: |
11ms |
get settings: |
9ms |
get forum list: |
12ms |
get settings: |
10ms |
get forum list: |
13ms |
get settings: |
10ms |
get forum list: |
12ms |
get settings: |
9ms |
get forum list: |
11ms |
get settings: |
12ms |
get forum list: |
14ms |
get settings: |
10ms |
get forum list: |
14ms |
get settings: |
11ms |
get forum list: |
15ms |
get settings: |
10ms |
get forum list: |
14ms |
get settings: |
10ms |
get forum list: |
14ms |
get settings: |
10ms |
get forum list: |
14ms |
get settings: |
13ms |
get forum list: |
15ms |
get settings: |
10ms |
get forum list: |
13ms |
get settings: |
11ms |
get forum list: |
15ms |
get settings: |
10ms |
get forum list: |
15ms |
get settings: |
11ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
60ms |
get topic data: |
13ms |
get forum data: |
2ms |
get page messages: |
51ms |
get tp. blocked users: |
1ms |
| others: | 16052ms |
| total: | 16664ms |

| 0 / 0 |
