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