簡體   English   中英

為什么SSRS報告在開發中有效,但在生產中無效

[英]Why SSRS reports works in development but not in Production

我有一個SELECT語句(不是存儲過程),該語句用於在SSRS(Visual Studio 2010)中創建報表。

參數@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

使用Tuning Advisor來查看哪些索引和統計信息需要工作量。 創建這些文件后-一切正常。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM