我有以下sql查询并尝试使用执行计划对其进行优化。在执行计划中,它表示估计的子树成本是36.89。有几个表轴(Eager Spool)。任何人都可以帮助我优化这个查询。提前致谢。优化SQL Server中的表假脱机执行计划
SELECT
COUNT(DISTINCT bp.P_ID) AS total,
COUNT(DISTINCT CASE WHEN bc.Description != 'S' THEN bp.P_ID END) AS m_count,
COUNT(DISTINCT CASE WHEN bc.Description = 'S' THEN bp.P_ID END) AS s_count,
COUNT(DISTINCT CASE WHEN bc.Description IS NULL THEN bp.P_ID END) AS n_count
FROM
progress_tbl AS progress
INNER JOIN Person_tbl AS bp ON bp.P_ID = progress.person_id
LEFT OUTER JOIN Status_tbl AS bm ON bm.MS_ID = bp.MembershipStatusID
LEFT OUTER JOIN Membership_tbl AS m ON m.M_ID = bp.CurrentMembershipID
LEFT OUTER JOIN Category_tbl AS bc ON bc.MC_ID = m.MembershipCategoryID
WHERE
logged_when BETWEEN '2017-01-01' AND '2017-01-31'
我没有看到'b'别名。我没有看到在SELECT部分中使用了'b_p'别名。发布的查询错误 – StanislavL
我在发布之前编辑了查询。我将相应地更改 –
由于您现在提供了一个正在运行的查询,请参阅我的编辑 –