프로시저 최초 실행 이후, 다시 변수 조건을 변경하여 실행하면
최초 실행계획을 사용하여 과부하가 발생됩니다.
재컴파일을 해야만 정상적인 실행계획이 나옵니다.
테이블에 대한 통계업데이트나 조각화는 문제가 없습니다.
조인절에 대한 부분은 테이블별로 인덱스로 구성되어 있습니다.
또 어떤 부분을 확인해 봐야 할까요?
정상적인경우와 비정상적인경우 실행계획 첨부합니다.
-------------------------------------------------------------------------------------------------------------
create PROCEDURE Sp_test
@FrDate VARCHAR(8),
@ToDate VARCHAR(8),
@SourceNo VARCHAR(12)
AS
Select
*
From TPPWorkPlan AS P (NOLOCK)
JOIN TPPWorkPlan_Yudo AS K (NOLOCK) ON P.PlanLotNo = K.PlanLotNO
AND P.Serl = K.Serl
JOIN TPPWorkPlanM_Yudo AS WM (NOLOCK) ON K.WPlanNo = WM.WPlanNo
WHERE P.StartDate >= @FrDate -- 생산시작일(FR)
AND P.StartDate <= @ToDate -- 생산시작일(TO)
AND WM.SrcNo LIKE @SourceNo + '%'
AND P.OutProcYn = '1'
AND WM.CfmDiv = '1'
------------------------------------------------------------------------------------------------------------
http://www.sqlworkshops.com/plancachingandquerymemory.htm
http://www.sqlworkshops.com/plancachingandquerymemory2.htm
위에 링크를 보시면 도움이 될 것 같습니다.
-- catchv