Почему отчеты SSRS работают в разработке, а не в производстве

У меня есть оператор SELECT (НЕ хранимая процедура), который я использую для создания отчета в SSRS (Visual Studio 2010).

Параметр @ClassCode - это тот, который вызывает проблемы. Но в разработке он работает нормально, но когда я разверну его в Production, он будет отображаться вечно.

Я предполагаю, что это прослушивание параметров, и я прочитал о том, как исправить это внутри хранимой процедуры. Но у меня нет 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

1 ответ

Использовал Tuning Advisor, чтобы увидеть, какие индексы и статистика нуждаются в рабочей нагрузке. После их создания все работает нормально.

Другие вопросы по тегам