Всем, привет.
Помогите начинающему, пожалуйста.
Что быстрее отработает в придложении where:
where
T1.ID in (1,2,3,4)
или
where
T1.ID = 1 or
T1.ID = 2 or
T1.ID = 3 or
T1.ID = 4
Или нет разницы?
Заранее, спасибо.
On 20.10.2010 14:14, Аноним 929 wrote:
Разницы нет.
Posted via RSDN NNTP Server 2.1 beta
" Аноним 929 " <0@users.rsdn.ru> wrote in message
news:4005287@news.rsdn.ru...
> Или нет разницы?
Обычно оптимизатор превращает первое во второе, так что нет разницы.
Posted via RSDN NNTP Server 2.1 beta
Здравствуйте, Аноним, Вы писали:
А>Всем, привет.
А>Помогите начинающему, пожалуйста.
А>Что быстрее отработает в придложении where:
А>А>where
А> T1.ID in (1,2,3,4)
А>
А>или
А>А>where
А> T1.ID = 1 or
А> T1.ID = 2 or
А> T1.ID = 3 or
А> T1.ID = 4
А>
А>Или нет разницы?
А>Заранее, спасибо.
Если значения подряд, то проще, наверное
T1.ID between 1 and 4
On 20.10.2010 22:18, londinium wrote:
> Если значения подряд, то проще, наверное
>
> T1.ID between 1 and 4
А вот between сильно быстрее может быть.
Конечно, зависит от размера диапазона, но всё же.
Правда, не факт, что какой-нибудь хитрый оптимизатор не
сможет IN превратить в несколько between по диапазонам
в виде применения OR-стратегии.
Posted via RSDN NNTP Server 2.1 beta
Если вы подумаете, что ключевое слово IN выполняет ту же функцию, что и OR, то будете совершенно правы. Следующий SQL-запрос выполняет ту же функцию, что и предыдущий:
Зачем же нужно ключевое слово IN? Его преимущества следующие.
— При работе с длинными списками необходимых значений синтаксис логического оператора IN гораздо легче читать.
— При использовании ключевого слова IN гораздо легче управлять порядком обработки (так как используется меньшее количество операторов).
— Логические операторы IN почти всегда быстрее обрабатываются, чем списки логических операторов OR.
— Самое большое преимущество логического оператора IN в том, что в данном операторе может содержаться еще одна инструкция SELECT, а это позволяет создавать очень динамичные предложения WHERE. Более подробно вы об этом узнаете в разделе, "Использование подзапросов".