我有这样摆脱昂贵的自我加入
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使用哈希联接,并且不使用索引 –