Відмова від відповідальності: все, що нижче, лише анекдотичне та витягнуте безпосередньо з мого особистого досвіду. Кожен, хто захоче провести більш емпірично суворий аналіз, може запросити його і проголосувати, якщо я буду. Я також усвідомлюю, що SQL є декларативною мовою, і вам не доведеться вважати, ЯК ваш код обробляється під час його написання, але, оскільки я ціную свій час, я це роблю.
Є нескінченно логічно еквівалентні твердження, але я розгляну три (ish).
Випадок 1: Два порівняння у стандартному порядку (Порядок оцінювання фіксований)
A> = MinBound AND A <= MaxBound
Випадок 2: Синтаксичний цукор (Порядок оцінки не обраний автором)
МІЖ МІНБАНКІВ І МАКСУБДОВИХ
Випадок 3: Два порівняння в освіченому порядку (Порядок оцінювання, обраний під час запису)
A> = MinBound AND A <= MaxBound
Або
A <= MaxBound AND A> = MinBound
На моєму досвіді, у випадку 1 та випадку 2 немає жодних послідовних чи помітних відмінностей у роботі, оскільки вони невідомі до набору даних.
Однак Case 3 може значно покращити терміни виконання. Зокрема, якщо ви працюєте з великим набором даних і маєте деякі евристичні знання про те, чи є A швидше більший за MaxBound або менший, ніж MinBound, ви можете помітно покращити час виконання, використовуючи Case 3 і замовляючи порівняння відповідно.
Один із випадків використання, який я маю - це запит великого історичного набору даних з неіндексованими датами для записів протягом певного інтервалу. Під час написання запиту я буду мати гарне уявлення про те, чи існує більше даних перед тим, як вказаний інтервал або ПІСЛЯ вказаного інтервалу, і можу відповідно замовити свої порівняння. У мене було скорочено терміни виконання приблизно на половину залежно від розміру набору даних, складності запиту та кількості записів, відфільтрованих за допомогою першого порівняння.