我必須優化這個查詢可以幫助我對它進行微調,以便更快地返回數據?在TSQL 2005中優化查詢
目前輸出需要26到35秒左右的時間。我還基於以下附件表創建的索引是我的查詢和索引:
SELECT DISTINCT o.organizationlevel, o.organizationid, o.organizationname, o.organizationcode,
o.organizationcode + ' - ' + o.organizationname AS 'codeplusname'
FROM Organization o
JOIN Correspondence c ON c.organizationid = o.organizationid
JOIN UserProfile up ON up.userprofileid = c.operatorid
WHERE c.status = '4'
--AND c.correspondence > 0
AND o.organizationlevel = 1
AND (up.site = 'ALL' OR
up.site = up.site)
--AND (@Dept = 'ALL' OR @Dept = up.department)
AND EXISTS (SELECT 1 FROM Attachment a
WHERE a.contextid = c.correspondenceid
AND a.context = 'correspondence'
AND (a.attachmentname like '%.rtf' or a.attachmentname like '%.doc'))
ORDER BY o.organizationcode
我不能改變任何東西分貝由於權限問題,任何幫助,將不勝感激。
您可以做的最好的事情是「展示計劃」:http://msdn.microsoft.com/en-us/library/ms191227.aspx(注意:該鏈接適用於MSSQL 2008,但大部分是平等的適用於MSSQL 2005)。 – paulsm4
確保這些FK列('c.organizationid'和'c.operatorid')被索引 - 這肯定會有助於JOIN性能 –
我有那些已經索引的列marc_s – aspmvcdeveloper