0
SSRS (Visual Studio 2010)에서 보고서를 만드는 데 사용하는 SELECT 문 (저장 프로 시저가 아님)이 있습니다.SSRS 보고서가 개발 중이지만 생산되지 않은 이유
매개 변수 @ClassCode는 문제를 일으키는 매개 변수입니다. 하지만 개발에서는 제대로 작동하지만, 프로덕션에 배포하면 영원히 렌더링됩니다.
나는 매개 변수 스니핑이라고 가정하고 있으며 저장 프로 시저 내부에서이를 수정하는 방법에 대해 읽었습니다. 하지만 SP가 없으므로 SELECT 문을 사용하고 있습니다.
SELECT 문에 대한 해결 방법은 무엇입니까? 그리고 환경의 차이점은 무엇입니까? 생산은 훨씬 더 강력합니다. 아래 내 쿼리 :
;WITH cte1
AS
(
SELECT QuoteID,
AccidentDate,
PolicyNumber,
SUM(PaidLosses) as PaidLosses
FROM tblLossesPlazaCommercialAuto
WHERE InsuredState IN (@State) AND AccidentDate BETWEEN @StartDate AND @EndDate AND TransactionDate <= @EndDate AND Coverage = 'VehicleComprehensive'
GROUP BY QuoteID,
AccidentDate,
PolicyNumber
),
cte3
AS
(
SELECT
cte1.Quoteid,
cte1.PolicyNumber,
cte1.AccidentDate,
cc.TransactionEffectiveDate,
cc.ClassCode,
CASE
WHEN ROW_NUMBER() OVER (PARTITION BY cte1.QuoteID, cte1.PolicyNumber,cc.AccidentDate ORDER BY (SELECT 0))=1 THEN cte1.PaidLosses
ELSE 0
END as PaidLosses--,
FROM cte1 inner join tblClassCodesPlazaCommercial cc
on cte1.PolicyNumber=cc.PolicyNumber
AND cte1.AccidentDate=cc.AccidentDate
AND cc.AccidentDate IS NOT NULL
/* This is the one that gives me problem */
WHERE cc.ClassCode IN (@ClassCode)
)
SELECT SUM(PaidLosses) as PaidLosses, c.YearNum, c.MonthNum
FROM cte3 RIGHT JOIN tblCalendar c ON c.YearNum = YEAR(cte3.AccidentDate) AND c.MonthNum = MONTH(cte3.AccidentDate)
WHERE c.YearNum <>2017
GROUP BY c.YearNum, c.MonthNum
ORDER BY c.YearNum, c.MonthNum
dev 및 prod 환경에 대해 SSMS에서 쿼리를 실행 해 보았습니까? 동일한 성능 차이가 있습니까? 그렇다면 쿼리 계획을 볼 수 있습니다. – SMM
감사합니다. 두 번 테이블 스캔을 했어. 나는 이것이 문제라고 생각한다. – Oleg