我有這樣擺脫昂貴的自我加入
SELECT
pa.col1,
SUM(ps.col2) col2,
SUM(psl.col2) col2_previous_month
FROM
pa
LEFT JOIN
ps ON pa.Id = ps.Id AND ps.date = @currDate
LEFT JOIN
ps as psl ON psl.Id = ps.Id AND psl.date = dateadd(month, - 1, @currDate)
GROUP BY
pa.col1;
一個SQL語句,該SQL通常被稱爲並且由於表ps
有100M行左加入是傷害。有沒有辦法使用左加入來重寫這個?
問候 尼克
這個查詢應該做什麼?你能提供一些樣本數據和所需的結果嗎? – Mureinik
正在爲'ps'中的日期列索引一個選項? – dlatikay
上有datecolumn的索引,但SQL Server使用哈希聯接,並且不使用索引 –