Мы используем базу данных Oracle 11g.
Как вы можете знать или не знать, если вы используете запрос с подстановочными знаками с "%" перед строкой, индекс столбца не используется и выполняется полное сканирование таблицы .
Похоже, что нет окончательного предложения о том, как улучшить этот тип запроса, но, возможно, вы могли бы поделиться ценной информацией из своего опыта о том, как оптимизировать следующий запрос:
SELECT *
FROM myTable
WHERE UPPER(CustomerName) like '%ABC%'
OR UPPER(IndemnifierOneName) like '%ABC%'
OR UPPER(IndemnifierTwoName) like '%ABC%';
... где все 3 столбцы имеют тип varchar2 (100) и ABC - значение входного параметра переменной.
@All предлагает индекс CONTEX , обратите внимание, что мои данные получают обновляется в любое время суток каждый день, и этот индекс требует повторной синхронизации, поэтому он не хороший вариант для таблицы из 1,5 миллиона строк , извините.
PS Я буду голосовать за каждый ответ, поэтому, пожалуйста, продолжайте их получать.