【问题标题】:Why SSRS reports works in development but not in Production为什么 SSRS 报告在开发中有效,但在生产中无效
【发布时间】:2017-04-05 05:07:09
【问题描述】:

我有一个 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

【问题讨论】:

  • 您是否尝试过在 SSMS 中针对 dev 和 prod 环境运行查询?您是否看到相同的性能差异?如果是这样,您可以查看查询计划...
  • 谢谢,你是对的。我有两个表扫描。我认为这是问题

标签: tsql reporting-services parameters parameter-sniffing


【解决方案1】:

使用 Tuning Advisor 查看哪些索引和统计信息需要工作负载。创建这些之后 - 一切正常。

【讨论】:

    猜你喜欢
    • 2023-03-29
    • 1970-01-01
    • 1970-01-01
    • 2015-03-24
    • 2013-12-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多