329 читали · 2 года назад
Приоритеты операторов в SQL запросах
Всем привет, друзья! Как вы думаете, какие строки будут отобраны в результате следующего запроса: SELECT *   FROM VOUCHERS WHERE CLIENT_ID = 1       AND DOC_TYPE = 2          OR FILIAL_ID = 3 те, где CLIENT_ID = 1 и ещё такие строки, где либо DOC_TYPE = 2 либо FILIAL_ID = 3 ИЛИ, ВСЁ ЖЕ, те, где CLIENT_ID = 1 и одновременно в столбце DOC_TYPE = 2 и ещё такие строки, где FILIAL_ID = 3 и не важно какой CLIENT_ID и DOC_TYPE? Здесь в силу вступает правило приоритета операторов. OR разделяет условия во...
2291 читали · 2 года назад
Использование хинтов в SQL запросах
Выполняя любую команду SQL, каждая СУБД старается выполнить её максимально эффективно. В каждой СУБД есть «оптимизатор», то есть механизм, принимающий решение как команда будет выполнена максимально эффективным образом. Строится план. Мы можем влиять на план выполнения запроса с помощью подсказок (хинтов), оставляя их прямо в SQL-коде. Если на одной из таблиц, участвующих в SQL-запросе есть индекс для какого-то столбца, значения которого используются во WHERE или в ON, то не обязательно, что он будет...