powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Поиск LIKE по тексту биржевых сообщений FIX-протокола.
14 сообщений из 14, страница 1 из 1
Поиск LIKE по тексту биржевых сообщений FIX-протокола.
    #39671016
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день коллеги.

Имеется табличка. 200 Гб. Непартицированная. Что-то типа.

Код: plsql
1.
2.
3.
4.
5.
6.
7.
create table msg_log(
  id VARCHAR2(36) primary key,
  dt TIMESTAMP(6) not null,
  msg CLOB not null
  ...
  ...
);



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

SELECT * FROM msg_log WHERE dt BETWEEN :d1 AND :d2 AND msg LIKE '%'||:text||'%';

Msg внутри себя хранит текст формата FIX ( https://ru.wikipedia.org/wiki/Financial_Information_eXchange).

Например. С той-же вики

Код: plsql
1.
8=FIX.4.2 | 9=178 | 35=D | 34=123123 | 49=BROKER11 | 56=PHLX | 52=20071123-05:30:00.000 | 11=ATOMNOCCC9990900 | 55=MSFT | 167=FUT | 54=1 | 38=15 | 40=2 | 44=15 | 59=0 | 10=128 | 



Теоретически кастомер может лупить в поле текст все что угодно. Но предположительно он будет искать
ордеры за вчерашний день d1=trunc(sysdate - 1), и по определенному номеру заявки 11=ATOMNOCCC9990900.

Не исключено что он может просто поискать всё по подстроке "%8=FIX.4.2 | 9=178%". Тоесть для сверки чего-либо.

Query работает 1 минуту в типичном юзкейсе. По SLA - должно быть несколько секунд. Ну там 2-3.

Oracle 11g R2.
Oracle Text - не установлен.

В рамках мозгового штурма мы рассматривали самые разные варианты вплоть до ElasticSearch, и выноса
этой таблички в уровень NoSQL. Но пока нет четкого понимания размеров (сколько), цены апдейта,
и лага между обновлением лога и текстового индекса.

Ничего с PROD копи-пастить не могу. Сорян. Ограничен NDA. Буду отвечать на словах. Надеюсь на ваше понимание.

Рад выслушать ваши советы и узнать как сделать подобный поиск у вас.
...
Рейтинг: 0 / 0
Поиск LIKE по тексту биржевых сообщений FIX-протокола.
    #39671017
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сколько записей всего? Сколько записей обычно выводится пользователю?
Каково распределение :d1 AND :d2 ?
Есть ли индекс по полю dt ?
...
Рейтинг: 0 / 0
Поиск LIKE по тексту биржевых сообщений FIX-протокола.
    #39671037
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
90 млн records.
За сутки ~ 600 000
Индекс по дате есть. SYS_EXTRACT_UTC(dt).

Распределение очень равномерное. Каждый день - примерно одно и то-же количество записей.

Обычно пользователю выдается первые 25 записей из ... хер ево знает сколько возможных.

Приложение сделано так что сначала делается count(*) по всей выборке. Оценивается размер
для pagination. Потом вторым запросом выводится первые 25 rows. Оба запроса работают
одинаковое время (~90 sec).
...
Рейтинг: 0 / 0
Поиск LIKE по тексту биржевых сообщений FIX-протокола.
    #39671041
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Распарсить и нормализовать в другую табличку msg.
Деномализовать туда же дату.
Изменить форму ввода кастомерских запросов на формализованную с парами параметр=значение.
Правильные индексы на второй табличке должны позволить свести время поиска до миллисекунд.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Поиск LIKE по тексту биржевых сообщений FIX-протокола.
    #39671042
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovРаспарсить и нормализовать в другую табличку msg.

На след. неделе я посчитаю количество тегов которые мы используем. Актуальных там будет с пол-сотни.
По протоколу их намного больше + еще есть кастомные расширения.

Изменить форму ввода кастомерских запросов на формализованную с парами параметр=значение.

Это исключено. Кастомер не пойдет на такое.
...
Рейтинг: 0 / 0
Поиск LIKE по тексту биржевых сообщений FIX-протокола.
    #39671043
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonЭто исключено. Кастомер не пойдет на такое.

Они всерьёз заставляют пользователей вводить "8=FIX.4.2 | 9=178"?
Пофиг: распарсить такой ввод точно так же как msg перед перековыванием параметров в запрос
и задача сводится к уже решённой.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Поиск LIKE по тексту биржевых сообщений FIX-протокола.
    #39671046
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ввести могут 90% тела сообщения.
...
Рейтинг: 0 / 0
Поиск LIKE по тексту биржевых сообщений FIX-протокола.
    #39671055
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonИзменить форму ввода кастомерских запросов на формализованную с парами параметр=значение.

Это исключено. Кастомер не пойдет на такое.Парсить пользовательский ввод тоже.
...
Рейтинг: 0 / 0
Поиск LIKE по тексту биржевых сообщений FIX-протокола.
    #39671777
feagor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
maytonВвести могут 90% тела сообщения.
Ну и парсите эти 90% сообщения. Формат то стандартный
...
Рейтинг: 0 / 0
Поиск LIKE по тексту биржевых сообщений FIX-протокола.
    #39671794
Фотография andrey_anonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сделайте свой кастомный доменный индекс и не ломайте никому мозг эластиками.
...
Рейтинг: 0 / 0
Поиск LIKE по тексту биржевых сообщений FIX-протокола.
    #39671796
andreymx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
как минимум от каунта можно освободиться
...
Рейтинг: 0 / 0
Поиск LIKE по тексту биржевых сообщений FIX-протокола.
    #39671909
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andrey_anonymous,

Я думал об этом. Не укладываюсь в estimation. Я готов поднять отдельный топик об этом и тихонько кодить с тестами перформанса. Но в рамках данной задачи я поскипаю этот пункт.
...
Рейтинг: 0 / 0
Поиск LIKE по тексту биржевых сообщений FIX-протокола.
    #39671911
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
По топику. Я смигрировал clob =>varchar2(4000). Благо длина сообщений позволяет и я имею еще двукратный запас.

Время уменьшилось 10 кратно.

Прошу тех кому не лень проверить мою версию.

Параметры
enable storage in row
Basic file
Nocaching
Nologging.

Все остальные по дефолту.
...
Рейтинг: 0 / 0
Поиск LIKE по тексту биржевых сообщений FIX-протокола.
    #39672779
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
По задаче пока отбой. Постановку изменим. LIKE уберем. Поиск вообще пойдет по отдельным полям.
Будет композитный индекс который включит в себя набор искомых атрибутов.

От темы индексирования фиксов я не отказываюсь но она будет фоновая
и долгоиграющая.

Чуть позже я сделаю форк на тему Domain Indexes.
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Поиск LIKE по тексту биржевых сообщений FIX-протокола.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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