Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 Замена like на contains  [new]
Alexei S
Member

Откуда:
Сообщений: 226
Добрый день!

Oracle 10.2.0.5 EE.

Есть запрос вида:
select *
  from t_table
 where t_col1 = 1
   and t_col2 like ('%text%');

поле t_col2 типа clob. ввиду невозможности создать по нему стандартный индекс, идет FTS порядка минуты.
Есть возможность создать по данному полю текстовый индекс и после модификации запроса на

select *
  from t_table
 where t_col1 = 1
   and contains (t_col2,'%text%') > 0 


отрабатывает за 1 сек.

Проблема в том, что нет возможности изменить код запроса в приложении. Возможно ли как-то сделать это средствами Oracle?
22 июл 13, 11:14    [14597705]     Ответить | Цитировать Сообщить модератору
 Re: Замена like на contains  [new]
andrey_anonymous
Member

Откуда: Москва
Сообщений: 18363
Попробуйте FGAC.
http://docs.oracle.com/cd/B19306_01/network.102/b14266/apdvcntx.htm#i1007660
22 июл 13, 13:23    [14598817]     Ответить | Цитировать Сообщить модератору
 Re: Замена like на contains  [new]
Alexei S
Member

Откуда:
Сообщений: 226
к сожалению, он только добавляет предикат, на замену не способен.
23 июл 13, 09:13    [14602203]     Ответить | Цитировать Сообщить модератору
 Re: Замена like на contains  [new]
-2-
Member

Откуда:
Сообщений: 15330
Alexei S,

database firewall, если он обойдется дешевле, чем переписать приложение.
23 июл 13, 11:49    [14603084]     Ответить | Цитировать Сообщить модератору
 Re: Замена like на contains  [new]
andrey_anonymous
Member

Откуда: Москва
Сообщений: 18363
Alexei S
к сожалению, он только добавляет предикат, на замену не способен.

Добавления предиката достаточно для решения означенной задачи.
23 июл 13, 11:50    [14603091]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить