powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Оптимизировать запрос с тремя JOIN и несколькими LIKE
8 сообщений из 33, страница 2 из 2
Оптимизировать запрос с тремя JOIN и несколькими LIKE
    #39670191
Acrobat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо всем за ответы. Буду думать, пробовать, действовать.
...
Рейтинг: 0 / 0
Оптимизировать запрос с тремя JOIN и несколькими LIKE
    #39670192
AltHasp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Acrobat2,

Если я правильно вас понял, то

1) Создай дубликат поля но с реверсным строковым значением, например ваш номер 1234578
в новом поле будет выглядеть 8754321

2) Далее в SELECT используй кляузу starting with
...
Рейтинг: 0 / 0
Оптимизировать запрос с тремя JOIN и несколькими LIKE
    #39670193
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Acrobat2,

если сравнивается всегда хвост , то можно замутить индекс по выражению для реверсированной строки.

Код: sql
1.
2.
CREATE INDEX IDX_REVERSE_PHONE ON PERSONS
COMPUTED BY (REVERSE (PHONE));



Ну и будешь искать примерно так

Код: sql
1.
SELECT * FROM PERSON WHERE REVERSE (PHONE) STARTING WITH REVERSE('1234578');



при условии, что в PERSON всегда хранится полный номер
...
Рейтинг: 0 / 0
Оптимизировать запрос с тремя JOIN и несколькими LIKE
    #39670194
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
05.07.2018 17:06, AltHasp пишет:
> Если я правильно вас понял, то

хорошо поставленная задача == половине решения!
(не уверен что всё именно так)
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Оптимизировать запрос с тремя JOIN и несколькими LIKE
    #39670196
AltHasp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да, забыл уточнить что индекс при этом будет цепляться.
Код: plsql
1.
 select field1 from table1 where my_fields starting with REVERSE('8754321')



как-то так. Попробуйте, должно подойти.
...
Рейтинг: 0 / 0
Оптимизировать запрос с тремя JOIN и несколькими LIKE
    #39670210
WildSery
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Acrobat2SQL такую задачу не решить.
Код: sql
1.
2.
select * from table1
  where :param starting with table1.nomer


Похоже, действительно, программист нужен.

А ежели тут не вхождение, а похожесть числа через более сложные алгоритмы (Марковский цепей и т.п.), то ...
...
Рейтинг: 0 / 0
Оптимизировать запрос с тремя JOIN и несколькими LIKE
    #39670365
Flashpoke
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Acrobat2С запросом разобрался, разделил на два, т.к. находится редко, а проверять надо часто. Всем спасибо за помощь. Хотел ещё спросить, как лучше сделать. Есть БД с строковыми значениями телефонных номеров. Примерно 5000 раз в минуту (5000 номеров), необходимо проверять, следующим образом, есть ли вхождение строки (номера) из БД в проверяемую (которых ~5000 в мин), т.е. нужно каждый номер из БД проверять на вхождение в заданный номер. БД весит не много, записей примерно тысяч 10. Получается единственное что можно сделать, это загрузить БД в оперативную память и с неё в цикле перебирать все номера и искать вхождение ???Мне кажется, что для этой задачи тебе нужен другой инструмент.
Пригодится триграммный индекс или, возможно, специальный префиксный индекс типа этого .
...
Рейтинг: 0 / 0
Оптимизировать запрос с тремя JOIN и несколькими LIKE
    #39670809
Acrobat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Мимопроходящийповторяю: без привлечения программиста задачу не решить.

Скорее всего так. Знай своё место.
...
Рейтинг: 0 / 0
8 сообщений из 33, страница 2 из 2
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Оптимизировать запрос с тремя JOIN и несколькими LIKE
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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