Size: a a a

2020 June 01

T

Timus in sql_ninja
ну тогда сделай через темповые таблицы. в них надо будет один раз данные загнать.
источник

AS

Alexandr Shoulyar in sql_ninja
если через СТЕ еще одно делать, я не совсем понимаю как посчитать долю

не совсем силен в СТЕ
источник

T

Timus in sql_ninja
cte это просто подзапрос. чтобы не писать один и тот же запрос несколько раз используют cte.
то есть если у тебя в запросе есть 2джойна на cte, то запрос из выполнится 2 раза.
источник

AS

Alexandr Shoulyar in sql_ninja
ну сте раз выполняется, а потом просто берется из него информация для джойна?
или я не правильно понял его работу?
источник

ML

Mihail Li in sql_ninja
сервер берет твой СТЕ и джойн, и формирует из этого барахла единый  запрос к базе
источник

Дt

Дмитрий texnix 🇨🇳... in sql_ninja
скорее всего неправильно, я тоже думал что 1 раз, но когда сравнил по скорости СТЕ и промежуточную таблицу, то временная таблица в разы быстрее
источник

ML

Mihail Li in sql_ninja
Дмитрий texnix 🇨🇳
скорее всего неправильно, я тоже думал что 1 раз, но когда сравнил по скорости СТЕ и промежуточную таблицу, то временная таблица в разы быстрее
просто , можно написатьодин  "тяжелый" запрос, а можно его заменить времянкой и легкими запросами
источник

AS

Alexandr Shoulyar in sql_ninja
я не уверен что у меня достаточно прав на создание времянок
источник

ML

Mihail Li in sql_ninja
смотрим что выгодне
источник

T

Timus in sql_ninja
Alexandr Shoulyar
ну сте раз выполняется, а потом просто берется из него информация для джойна?
или я не правильно понял его работу?
нет. сколько раз используешь в запросе CTE, столько раз оно и выполняется.
источник

AS

Anastasiya Shmatkova in sql_ninja
Timus
нет. сколько раз используешь в запросе CTE, столько раз оно и выполняется.
Но ведь не совсем так (в скл сервер, по крайней мере) . @Stariknavy правильно написал, как оно работает.
источник

T

Timus in sql_ninja
Anastasiya Shmatkova
Но ведь не совсем так (в скл сервер, по крайней мере) . @Stariknavy правильно написал, как оно работает.
и чего тебе с киндером не сидится...
источник

Дt

Дмитрий texnix 🇨🇳... in sql_ninja
я делал джоин СТЕ сам с собой, вышло очень долго, если закинуть те же данные во временку и временку саму с собой заджоинить, выходит очень быстро
источник

AS

Anastasiya Shmatkova in sql_ninja
Timus
и чего тебе с киндером не сидится...
У меня проходит беременный тупняк, радуюсь каждой минуте это дела)))
источник

AS

Alexandr Shoulyar in sql_ninja
пошел гуглить как создать временную таблицу
источник

T

Timus in sql_ninja
Anastasiya Shmatkova
Но ведь не совсем так (в скл сервер, по крайней мере) . @Stariknavy правильно написал, как оно работает.
а что я не так написал?
есть запрос в CTE. потом ты этот CTE используешь пару раз в запросе. в итоге запрос из CTE будет выполнен пару раз.
источник

T

Timus in sql_ninja
это по сути как более читабельная форма и более простая форма внесения правок в подзапросы.
источник

А

Андрій in sql_ninja
Timus
а что я не так написал?
есть запрос в CTE. потом ты этот CTE используешь пару раз в запросе. в итоге запрос из CTE будет выполнен пару раз.
так не запрос из сте выполняется, а он както оптимизируется вроде.....
источник

T

Timus in sql_ninja
Андрій
так не запрос из сте выполняется, а он както оптимизируется вроде.....
на сколько я помню - нифига оно не оптимизируется. если только планом.
может @LuckyDima может точнее сказать
источник

T

Timus in sql_ninja
Alexandr Shoulyar
пошел гуглить как создать временную таблицу
а чего там гуглить. как и обычную, например:
create table #tmp (id int, val varchar(12))
источник