Таблицы доставки имеют 1731791+ строк. столбец homedl, имеющий 0,1, значения NULL.NVL() ухудшает характеристики
Я хочу, чтобы принести записи, когда homedl столбец не равен 1.
Какой запрос даст лучшую производительность здесь
select homedl
from delivery
where item_id='1343275'
AND NVL(homedl,0) <> 1
and item_type=0;
ИЛИ
select homedl
from delivery
where item_id='1343275'
AND (homedl<>1 or homedl is null)
and item_type=0;
Просто проверьте план выполнения, может быть? –
Вы пытались запустить оба и посмотреть на производительность и объяснить планы? Если у вас есть указатель на item_id, это должно быть неуместным. –
Разнообразны ли планы запросов? Я ожидал бы, что эти два запроса будут давать идентичные планы и, таким образом, выполнить тождественно. Если на 'homedl' есть индекс, либо использование функции, либо поиск значений« NULL », вероятно, предотвратят использование индекса. Если вы заявляете, что получаете плохую производительность, я бы предположил, что добавление «NVL» предотвращает использование индекса, который можно устранить, создав индекс на основе функций. –