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

Откуда:
Сообщений: 9
будет ли использоваться индекс при сравнении по маске, если справа от оператора like будет не константа, а переменная?
например:
var_name := 'abc%';
... WHERE col_name LIKE var_name;
12 июл 11, 14:46    [10961761]     Ответить | Цитировать Сообщить модератору
 Re: индексы, like и переменные  [new]
Vint
Member

Откуда: Москва
Сообщений: 4564
смотря какой индекс.
12 июл 11, 14:47    [10961771]     Ответить | Цитировать Сообщить модератору
 Re: индексы, like и переменные  [new]
olshevskiy87
Member

Откуда:
Сообщений: 9
Vint
смотря какой индекс.

pl/sql пишет type - Normal. Составной индекс - два поля, первое типа varchar2, второе - number. В like используется первое поле.
12 июл 11, 14:55    [10961853]     Ответить | Цитировать Сообщить модератору
 Re: индексы, like и переменные  [new]
Vint
Member

Откуда: Москва
Сообщений: 4564
да посмотрите Вы наконец то план.. там уже точно написано. еще трейс снимите для большего прозрения. а потом читать и понимать концепты.
12 июл 11, 15:28    [10962209]     Ответить | Цитировать Сообщить модератору
 Re: индексы, like и переменные  [new]
dbms_photoshop
Member

Откуда: sqlmdx.net
Сообщений: 5151
olshevskiy87,
Если при харпд парсе на этапе bind variable peeking при оценке селективности для переданной переменной оракл решит что индексный доступ целесообразен, то соответственно план будет со сканированием индекса. Если решит, что не целесообразен, то соответственно и для всех остальных вызовов даже с суперселективными переменными инджексного доступа не будет. Это для 10-ки.
В 11-ке чуть сложнее. См. adaptive cursor sharing.
12 июл 11, 15:40    [10962310]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить