|
|
|
Игнорирование регистра при поиске
|
|||
|---|---|---|---|
|
#18+
Добрый день, Есть ASE 12.5 и таблица со строковым столбцом. Надо реализовать поиск по столбцу без учета регистра, так, чтобы использовался какой-нибудь индекс. Буду рад любым идеям. Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2008, 16:21 |
|
||
|
Игнорирование регистра при поиске
|
|||
|---|---|---|---|
|
#18+
davydoffДобрый день, Есть ASE 12.5 и таблица со строковым столбцом. Надо реализовать поиск по столбцу без учета регистра, так, чтобы использовался какой-нибудь индекс. Буду рад любым идеям. Спасибо. чтобы какой-нибудь индекс использовался необходимо его существование приведите скрипты таблицы и индексов идея - коллэйшен сервера *nocs, т.е. "no case sensitive" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2008, 17:20 |
|
||
|
Игнорирование регистра при поиске
|
|||
|---|---|---|---|
|
#18+
komrad, упоминая использование индекса я подразумевал использование хоть какого-нибудь индекса для ускорения поиска, чтобы избежать простого сканирования. Для конкретики могу уточнить, что индекс по данному строковому столбцу. Основная проблема, что этот индекс чувствителен к регистру. К сожалению, конкретных скриптов нет, так как вопрос носит общий характер и не имеет отношения к конкретной реализации. А можете рассказать поподробнее про collation сервера? Спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2008, 17:59 |
|
||
|
Игнорирование регистра при поиске
|
|||
|---|---|---|---|
|
#18+
Можно добавить в таблицу еще одну колонку которая будет хранить строку приведенную к одному регистру. Заполнять это поле триггером на основе главного поля. Сделать индекс по этому новому вычисляемому полю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2008, 18:19 |
|
||
|
Игнорирование регистра при поиске
|
|||
|---|---|---|---|
|
#18+
davydoffkomrad, упоминая использование индекса я подразумевал использование хоть какого-нибудь индекса для ускорения поиска, чтобы избежать простого сканирования. Для конкретики могу уточнить, что индекс по данному строковому столбцу. Основная проблема, что этот индекс чувствителен к регистру. К сожалению, конкретных скриптов нет, так как вопрос носит общий характер и не имеет отношения к конкретной реализации. А можете рассказать поподробнее про collation сервера? Спасибо! например скрипт: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. планQUERY PLAN FOR STATEMENT 1 (at line 1). STEP 1 The type of query is SELECT. FROM TABLE z Nested iteration. Index : i1 Forward scan. Positioning by key. Index contains all needed columns. Base table will not be read. Keys are: a ASC Using I/O Size 4 Kbytes for index leaf pages. With LRU Buffer Replacement Strategy for index leaf pages. а коллейшен nocs, т.е. регистронезависимый - это когда 'a'='A' при поиске у меня на сервере - регистрозависимый и поэтому для реализации Вашего условия запрос будет выглядеть так (чтобы индекс подхватился): Код: plaintext 1. 2. посмотреть текущую кодовую страницу сервера и порядок сортировки можно так ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2008, 18:20 |
|
||
|
Игнорирование регистра при поиске
|
|||
|---|---|---|---|
|
#18+
White Owl, спасибо за идею! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2008, 18:34 |
|
||
|
Игнорирование регистра при поиске
|
|||
|---|---|---|---|
|
#18+
komrad, понял вас, спасибо. Но такая настройка 'no case sensitive' влияет на весь сервер, а не на конкретный столбец. Мало того, я не имею возможности настраивать сервер, к сожалению. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2008, 18:40 |
|
||
|
Игнорирование регистра при поиске
|
|||
|---|---|---|---|
|
#18+
Интересно, а индекс может быть нечувствительным к регистру в ASE 12.5 ? Исходя из документации, похоже, нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2008, 18:48 |
|
||
|
Игнорирование регистра при поиске
|
|||
|---|---|---|---|
|
#18+
davydoffИнтересно, а индекс может быть нечувствительным к регистру в ASE 12.5 ? Исходя из документации, похоже, нет. индекс есть, грубо говоря, производная от данных а правило сортировки данных (в том числе и внутри страниц индекса) определяется коллэйшеном сервера ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2008, 18:53 |
|
||
|
Игнорирование регистра при поиске
|
|||
|---|---|---|---|
|
#18+
komrad, спасибо. Подскажите, влияет ли коллейшн на оператор like? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2008, 19:12 |
|
||
|
Игнорирование регистра при поиске
|
|||
|---|---|---|---|
|
#18+
davydoff пишет: > Интересно, а индекс может быть нечувствительным к регистру в ASE 12.5 ? > Исходя из документации, похоже, нет. НЕТ. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.12.2008, 11:30 |
|
||
|
Игнорирование регистра при поиске
|
|||
|---|---|---|---|
|
#18+
davydoff пишет: > komrad, спасибо. Подскажите, влияет ли коллейшн на оператор like? конечно влияет. Он вообще на всё влияет. На все операции с текстовыми данными. В общем, в сложившейся ситуации можно это сделать только как подсказал WhiteOwl. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.12.2008, 11:31 |
|
||
|
|

start [/forum/topic.php?fid=55&msg=35688953&tid=2011260]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
155ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
45ms |
get tp. blocked users: |
1ms |
| others: | 13ms |
| total: | 255ms |

| 0 / 0 |

Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
... ля, ля, ля ...