87 열과 53,000 행이있는 tblStkMst2
테이블이 있습니다. 다음 쿼리를 실행하면 83-96 밀리 초 (Core2 Duo, 2.8GHz, 2GB 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 Islam - 당신의 지속적인 도움을 원하면 사람들에게 반응해야합니다. –