Не равен ли первичный ключ нулю id! = 0 в предложении where уменьшить запрос
производительность
Это происходит так, что вы заканчиваете полным сканированием таблицы.
Не мешает ли эта проверка воспользоваться преимуществами индексации?
Да. Поскольку id != 0
почти всегда будет принимать значение true, в конечном итоге вы получите все данные таблицы.
Чем меньше% результатов, которые вы возвращаете, тем выше вероятность того, что Oracle воспользуется вашим индексом. Ваше состояние возвращает все ваши данные, поэтому оно не использует ваш индекс.
Если вам интересно, можете ли вы улучшить производительность запросов с помощью условия != 0
, ответ - вы не можете. Это уже достаточно хорошо. Иногда вам нужно принять полное сканирование таблицы, вы не всегда можете воспользоваться вашим индексом.