Обратный индекс | |
---|---|
IgorDokukin Сообщений: 21 Дата регистрации: 21.02.2005 |
Приветствую всех.
Есть такая задачка - нужно быстро искать выражение типа %12345 В лисе это делается обратным индексом через функцию из которой получаю 54321 далее SET ORDER и SEEK. Вопрос. Как сделать такой быстрый поиск если базы в MS SQL. Хочется не потерять в скорости. |
Re: Обратный индекс | |
---|---|
Владимир Максимов Сообщений: 14095 Откуда: Москва Дата регистрации: 02.09.2000 |
Если под "12345" понимается некое слово, то в MS SQL есть такая штука, называется "полнотекстовый поиск" (fulltext search).
Если это фрагмент слова, то ничего не поделаешь, придется так и писать RTRIM(MyField) LIKE "%12345" ------------------ |
Re: Обратный индекс | |
---|---|
IgorDokukin Сообщений: 21 Дата регистрации: 21.02.2005 |
Имею поле Dvigatel C(25) - где забиты номера двигателей, к примеру нужно выбрать все двигетеля номера которых оканчиваются на '12345', Есть ли возможность ускорить выборку
SELECT * FROM MODEL WHERE Dvigatel LIKE '%12345' в MS SQL. Может существуют средства ускоряющие выполнение данного запроса ? Или возможно сделать обратный индекс в самом MS SQL? |
Re: Обратный индекс | |
---|---|
boba Сообщений: 6269 Откуда: Медвежьи озера- Дата регистрации: 26.03.2001 |
ПИдите в query analiser
Запустите там запрос сначала без индекса с опицией show plan Посмотрите результат Потом добавьте индекс на полу , в котором идет индекс Повторите запрос с show plan Если там покажет использование индекса-скорость выросла ------------------ не имей 100 рублей, а имей сто друзей |
Re: Обратный индекс | |
---|---|
Hel!Riser Автор Сообщений: 10452 Откуда: Нижний Новгород Дата регистрации: 11.03.2001 |
Цитата:индескс прямой сделать нельзя, но обойти проблему пробуй так - заведи поле ReDvigatel С(25) с индексом, кот будет заполняца в тирггере Инсерта\Апдейта как ты делаешь своекй ф-цие "наоборот" - т.е. 12345 в Dvigatel и 54321 в ReDvigatel. А дальше уже стандартный SELECT-SQL. Вот тока не помню - поможет или нет это избавица от % в LIKE ------------------ Осторожно - глисты! |
© 2000-2024 Fox Club  |