powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Inner join on LIKE
10 сообщений из 35, страница 2 из 2
Inner join on LIKE
    #39462522
Фотография env
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кривошипно-шатунный механизм,

Т.е. кто такие книга и фотошопа - вопроса не возникло? Уже хорошо.
...
Рейтинг: 0 / 0
Inner join on LIKE
    #39462537
Фотография dbms_photoshop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexus12индекса по номерам счетов нет и поставить нельзяИндексы и не нужны.
Alexus12основной вопрос такой: если join по like, то hash / merge в принципе невозможен? т.е. план всегда будет nested loops?Ну ты можешь попробовать merge только лучше не станет
join ... on value >= regexp_substr(mask, '[^%_]+') + filter by like

Так что там по поводу распределения масок?
Код: plsql
1.
2.
3.
4.
select length(fixed_mask) l, count(*) cnt
  from (select regexp_substr(mask, '[^%_]+') fixed_mask from t)
group by length(fixed_mask)
order by 1
...
Рейтинг: 0 / 0
Inner join on LIKE
    #39462538
stax..
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexus12,

а если так ?
Код: plsql
1.
2.
select * from emp e
where exists (select 1 from dept d where e.ename like d.dname)



ps
я так понимаю, маски не пересекаются
......
stax
...
Рейтинг: 0 / 0
Inner join on LIKE
    #39462550
Фотография dbms_photoshop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
stax..а если так ?Если много масок может соответсвовать и надо получить лишь факт наличия соответсвия, то будет лучше чем self join
(поскольку фильтр работает до нахождения первого соответствия), но не на порядки.
Если не более одной маски может соответсвовать, то производительность такая же как для self join.
...
Рейтинг: 0 / 0
Inner join on LIKE
    #39462557
stax..
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dbms_photoshopstax..а если так ?Если много масок может соответсвовать и надо получить лишь факт наличия соответсвия, то будет лучше чем self join
(поскольку фильтр работает до нахождения первого соответствия), но не на порядки.
Если не более одной маски может соответсвовать, то производительность такая же как для self join.
self join ето?
Код: plsql
1.
select * from emp e,dept d where e.ename like d.dname



если маски пересекаются то ето будут разные запросы
при пересечении масок, надо убрать дубли и на 100млн ето наверное ощутимо

.....
stax
...
Рейтинг: 0 / 0
Inner join on LIKE
    #39462558
Фотография dbms_photoshop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dbms_photoshopstax..а если так ?Если много масок может соответсвовать и надо получить лишь факт наличия соответсвия, то будет лучше чем self join
(поскольку фильтр работает до нахождения первого соответствия), но не на порядки.
Если не более одной маски может соответсвовать, то производительность такая же как для self join.Даже если не более одной, чуть лучше self join по описанной причине.
...
Рейтинг: 0 / 0
Inner join on LIKE
    #39462565
stax..
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dbms_photoshopdbms_photoshopпропущено...
Если много масок может соответсвовать и надо получить лишь факт наличия соответсвия, то будет лучше чем self join
(поскольку фильтр работает до нахождения первого соответствия), но не на порядки.
Если не более одной маски может соответсвовать, то производительность такая же как для self join.Даже если не более одной, чуть лучше self join по описанной причине.
я чуть не о том
если более одной, то надо distinct, иначе будут дубли
дистинкт для 130+ млн строк, имхо ето не мало

.....
stax
...
Рейтинг: 0 / 0
Inner join on LIKE
    #39469728
Alexus12
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
гуру ASKTOM ответили
https://asktom.oracle.com/pls/apex/f?p=100:11:0::::P11_QUESTION_ID:9535219800346176907

что если есть возможность добавить доп.условие на равенство, например

subst(p,1,5) =substr(a,1,5)

то джойн будет выполняться как HASH

это сильно помогло ускорить запрос.
...
Рейтинг: 0 / 0
Inner join on LIKE
    #39469735
Фотография dbms_photoshop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexus12,

Если б ты отвечал на вопросы тебе б и здесь ответили.
Я тебя спрашивал дважды про распределение, но ты, видимо, читаешь по диагонали.
...
Рейтинг: 0 / 0
Inner join on LIKE
    #39469743
Фотография AmKad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Этот ответ был дан сразу env-ом.
...
Рейтинг: 0 / 0
10 сообщений из 35, страница 2 из 2
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Inner join on LIKE
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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