我有一個表tblStkMst2
,它有87列和53,000行。如果我執行以下查詢,則需要83到96毫秒(Core2 Duo,2.8 GHz,2 GB RAM)。但是當我使用不同的關鍵字時,它需要1086到1103毫秒(超過1秒)。這真的很貴。如果我對53,000行數據應用重複刪除算法,則不需要1秒。DISTINCT SQL Server 2005性能問題
SQL Server 2005中有沒有其他的方法來提高執行時間?
declare @monthOnly int set @monthOnly = 12
declare @yearOnly int set @yearOnly = 2011
SELECT --(distinct)--
tblSModelMst.SMNo as [ModelID]
,tblSModelMst.Vehicle as [ModelName]
FROM tblStkMst2
INNER JOIN tblDCDetail ON tblStkMst2.DCNo = tblDCDetail.DCNo AND tblDCDetail.Refund=0
INNER JOIN tblSModelMst ON tblStkMst2.SMno = tblSModelMst.SMNo
INNER JOIN tblBuyerMst ON tblDCDetail.BNo = tblBuyerMst.BNo
LEFT OUTER JOIN tblSModelSegment ON tblSModelMst.SMSeg = tblSModelSegment.ID
left outer JOIN dbo.tblProdManager as pd ON pd.PMID = tblBuyerMst.PMId
WHERE (pd.Active = 1) AND ((tblStkMst2.ISSFlg = 1) or (tblStkMst2.IsBooked = 1))
AND (MONTH(tblStkMst2.SIssDate) = @monthOnly) AND (YEAR(tblStkMst2.SIssDate) = @yearOnly)
您是否嘗試過使用調整顧問程序並顯示估算執行計劃。這些應該可以幫助你找到時間。你是否也有所有主鍵和外鍵列的索引? –
請至少顯示'DISTINCT'版本的執行計劃,最好是兩者。 –
@Abidul伊斯蘭教 - 如果你想繼續提供幫助,你需要回應他人。 –