Гость
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Условие ON / 7 сообщений из 7, страница 1 из 1
27.10.2021, 13:05
    #40107311
PaulWist
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Условие ON
Дано:

табличка #T1 - изменять нельзя (покупной софт)

табличка #suffix - творчество предыдущих поколений (изменять можно, даже что-то взамен можно)

Пример кода, как эти две таблички предыдущие поколения связывали /*right(T1.cWord, len(suffix.suffix)) = suffix.suffix*/

Прошу помощи у сообщества, как избавиться от такого соединения.

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
create table #T1 (cWord nvarchar(50))
insert into #T1 values(N'OneTwoThree'),(N'TwoThreeOne'),(N'ThreeOneTwo')

create table #suffix (suffix nvarchar(5))
insert into #suffix values(N'One'), (N'Three')

select * from #T1 T1
left join #suffix suffix on right(T1.cWord, len(suffix.suffix)) = suffix.suffix

drop table #t1
drop table #suffix
...
Рейтинг: 0 / 0
27.10.2021, 13:37
    #40107337
Konst_One
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Условие ON
Код: sql
1.
select * from #T1 T1 left join #suffix suffix on T1.cWord LIKE('%' + suffix.suffix)
...
Рейтинг: 0 / 0
27.10.2021, 13:45
    #40107349
Владислав Колосов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Условие ON
А что не так с этим соединением, вроде работает?
...
Рейтинг: 0 / 0
27.10.2021, 14:42
    #40107394
PaulWist
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Условие ON
2Konst_One

Благодарю!

Владислав Колосов
А что не так с этим соединением, вроде работает?


Вариант Konst_One немного быстрее, логических чтений на 10% меньше.
...
Рейтинг: 0 / 0
27.10.2021, 17:52
    #40107497
Ролг Хупин
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Условие ON
PaulWist
2Konst_One

Благодарю!

Владислав Колосов
А что не так с этим соединением, вроде работает?


Вариант Konst_One немного быстрее, логических чтений на 10% меньше.


Может и лучше на ваших 3+2 записях
...
Рейтинг: 0 / 0
27.10.2021, 17:57
    #40107500
PaulWist
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Условие ON
Ролг Хупин
PaulWist
2Konst_One

Благодарю!

пропущено...


Вариант Konst_One немного быстрее, логических чтений на 10% меньше.


Может и лучше на ваших 3+2 записях


На 15 млн. ощущается :)
...
Рейтинг: 0 / 0
27.10.2021, 21:59
    #40107577
Владислав Колосов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Условие ON
PaulWist,

количество чтений должно быть одинаковым при любом варианте. У меня наоборот, вариант с right работает быстрее всех на 1.5 млн строк. там + на - одинаково по времени. Если суффиксов много меньше, чем данных, то получится, что loop join наиболее эффективен.
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Условие ON / 7 сообщений из 7, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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