temp таблички?) в гугле однозначного ответа не нашёл, может кто-то делал рисерч?)
http://blogs.lobsterpot.com.au/2018/02/13/revisiting-group-v-distinct/ Но обязательна к прочтению вторая часть, т.к. это все таки разные операторы и то что иногда совпадают результаты, ни о чем не говорит. https://sqlperformance.com/2018/03/t-sql-queries/distinct-group-by
а как понять что СТЕ материализовался или заинлайнился?
По плану выполнения. Материализация это table spool, ЕМНИП
спасибо
CTE это аналог derived table и т.п. И будет "выполнено" столько раз, сколько упоминается в основном запросе. Хотя отдельное "выполнение" и может быть материализовано. Например drop table if exists #t; select name, rand(checksum(newid())) as v into #t from master.dbo.spt_values; with t (name, v) as ( select name, v * 10 from #t ) select * from t a cross apply (select sum(v) from t where name = a.name and v < a.v) b(s);
Обсуждают сегодня