我是這個初學者,所以希望你能幫上忙。我在SQL服務器2008R2工作,並具有從四個表都連接在一起組成一個觀點:如何加快此SQL視圖?
SELECT DISTINCT ad.award_id,
bl.funding_id,
bl.budget_line,
dd4.monthnumberofyear AS month,
dd4.yearcalendar AS year,
CASE
WHEN frb.full_value IS NULL THEN '0'
ELSE frb.full_value
END AS Expenditure_value,
bl.budget_id,
frb.accode,
'Actual' AS Type
FROM dw.dbo.dimdate5 AS dd4
LEFT OUTER JOIN dbo.award_data AS ad
ON dd4.fulldate BETWEEN ad.usethisstartdate AND
ad.usethisenddate
LEFT OUTER JOIN dbo.budget_line AS bl
ON bl.award_id = ad.award_id
LEFT OUTER JOIN dw.dbo.fctresearchbalances AS frb
ON frb.el3 = bl.award_id
AND frb.element4groupidnew = bl.budget_line
AND dd4.yearfiscal = frb.yr
AND dd4.monthnumberfiscal = frb.period
視圖有9列和150萬行和增長。從這個視圖選擇*需要20分鐘的所有行。我在加入表的字段中添加了索引,並將其改進爲10分鐘。我的問題是我還能做些什麼才能讓選擇更快運行?
非常感謝,紫。
你使用'SSMS中運行,看看那裏的瓶頸時,包括實際的執行Plan'? – christiandev
你有沒有嘗試使用[SQL事件探查器??](http://msdn.microsoft.com/en-us/library/ff650699.aspx) –