powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / Игнорирование регистра при поиске
13 сообщений из 13, страница 1 из 1
Игнорирование регистра при поиске
    #35688467
davydoff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день,

Есть ASE 12.5 и таблица со строковым столбцом. Надо реализовать поиск по столбцу без учета регистра, так, чтобы использовался какой-нибудь индекс. Буду рад любым идеям. Спасибо.
...
Рейтинг: 0 / 0
Игнорирование регистра при поиске
    #35688697
Фотография komrad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
davydoffДобрый день,

Есть ASE 12.5 и таблица со строковым столбцом. Надо реализовать поиск по столбцу без учета регистра, так, чтобы использовался какой-нибудь индекс. Буду рад любым идеям. Спасибо.
чтобы какой-нибудь индекс использовался необходимо его существование
приведите скрипты таблицы и индексов

идея - коллэйшен сервера *nocs, т.е. "no case sensitive"
...
Рейтинг: 0 / 0
Игнорирование регистра при поиске
    #35688846
davydoff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
komrad, упоминая использование индекса я подразумевал использование хоть какого-нибудь индекса для ускорения поиска, чтобы избежать простого сканирования. Для конкретики могу уточнить, что индекс по данному строковому столбцу. Основная проблема, что этот индекс чувствителен к регистру. К сожалению, конкретных скриптов нет, так как вопрос носит общий характер и не имеет отношения к конкретной реализации. А можете рассказать поподробнее про collation сервера? Спасибо!
...
Рейтинг: 0 / 0
Игнорирование регистра при поиске
    #35688889
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно добавить в таблицу еще одну колонку которая будет хранить строку приведенную к одному регистру. Заполнять это поле триггером на основе главного поля. Сделать индекс по этому новому вычисляемому полю.
...
Рейтинг: 0 / 0
Игнорирование регистра при поиске
    #35688893
Фотография komrad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
davydoffkomrad, упоминая использование индекса я подразумевал использование хоть какого-нибудь индекса для ускорения поиска, чтобы избежать простого сканирования. Для конкретики могу уточнить, что индекс по данному строковому столбцу. Основная проблема, что этот индекс чувствителен к регистру. К сожалению, конкретных скриптов нет, так как вопрос носит общий характер и не имеет отношения к конкретной реализации. А можете рассказать поподробнее про collation сервера? Спасибо!

например скрипт:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
CREATE TABLE dbo.y
(
    i int         NOT NULL,
    a varchar( 20 ) NOT NULL
)
go
insert into y select  1 ,'zajksajks'
insert into y select  1 ,'xcajksajks'
insert into y select  1 ,'gajksajks'
insert into y select  1 ,'eajksajks'
insert into y select  1 ,'tajksajks'
go
insert into y select  1 , 'hellohellohello'
go  5000 
create index i1 on y(a)
go
select a from y where a like 'z%'
go
план от него:

план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.
select a from z where a like 'A%' and a like 'a%'
go

посмотреть текущую кодовую страницу сервера и порядок сортировки можно так
...
Рейтинг: 0 / 0
Игнорирование регистра при поиске
    #35688916
davydoff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
White Owl, спасибо за идею!
...
Рейтинг: 0 / 0
Игнорирование регистра при поиске
    #35688928
davydoff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
komrad, понял вас, спасибо. Но такая настройка 'no case sensitive' влияет на весь сервер, а не на конкретный столбец. Мало того, я не имею возможности настраивать сервер, к сожалению.
...
Рейтинг: 0 / 0
Игнорирование регистра при поиске
    #35688941
davydoff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Интересно, а индекс может быть нечувствительным к регистру в ASE 12.5 ? Исходя из документации, похоже, нет.
...
Рейтинг: 0 / 0
Игнорирование регистра при поиске
    #35688953
Фотография komrad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
davydoffИнтересно, а индекс может быть нечувствительным к регистру в ASE 12.5 ? Исходя из документации, похоже, нет.
индекс есть, грубо говоря, производная от данных
а правило сортировки данных (в том числе и внутри страниц индекса) определяется коллэйшеном сервера
...
Рейтинг: 0 / 0
Игнорирование регистра при поиске
    #35688974
davydoff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
komrad, спасибо. Подскажите, влияет ли коллейшн на оператор like?
...
Рейтинг: 0 / 0
Игнорирование регистра при поиске
    #35690015
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
davydoff пишет:

> Интересно, а индекс может быть нечувствительным к регистру в ASE 12.5 ?
> Исходя из документации, похоже, нет.
НЕТ.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Игнорирование регистра при поиске
    #35690021
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
davydoff пишет:

> komrad, спасибо. Подскажите, влияет ли коллейшн на оператор like?
конечно влияет. Он вообще на всё влияет. На все операции с текстовыми данными.

В общем, в сложившейся ситуации можно это сделать только как подсказал WhiteOwl.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Игнорирование регистра при поиске
    #35690435
davydoff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZiv, спасибо!
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / Игнорирование регистра при поиске
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]