Oracle обратный индекс и запрос - PullRequest
1 голос
/ 08 октября 2009

Если я создаю обратный индекс в Oracle для столбца VARCHAR2, нужно ли также обратить значение, использованное в предложении WHERE?

CREATE INDEX myindex ON myTable(name) REVERSE;

SELECT name FROM myTable WHERE name='Peter';

или

SELECT name FROM myTable WHERE name='reteP';

Ответы [ 3 ]

5 голосов
/ 08 октября 2009

Значение, которое вы ищете - «Питер». Если вы ищете «reteP», вы вернете ноль строк (или, по крайней мере, не строки, которые вы ищете).

2 голосов
/ 08 октября 2009

Это необходимо для улучшения распределения данных.

Как и многие названия фильмов, начинаются с The, что ухудшает производительность индекса.

Вам не нужно отменять условие: Oracle сделает это автоматически.

Однако вы больше не можете выполнять запросы диапазона:

SELECT name FROM myTable WHERE name BETWEEN 'A' AND 'C'

приведет к полному сканированию

0 голосов
/ 08 октября 2009

Нет, ты не видишь - см. Бурлсон для полного тощий.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...