1

非常に単純な SSRS レポートがあります。ストアド プロシージャを実行するのに 1 秒もかかりません。レポートをローカル サーバーにアップロードすると、レポートは正常に機能します。ただし、リモート サーバー (SQL Server 2012) では、レポートの実行に 5 ~ 7 分かかります。リモートサーバーに関する他の私のレポートはうまく機能します。誰でも私を助けることができますか?前もって感謝します!

4

1 に答える 1

3

SQL Profiler または ReportServer DB を使用して、遅いプロセスを確認する必要があります。この SQL をチェックに使用できます。

USE ReportServer
SELECT ReportPath,
       RequestType,
       Format,
       ReportAction,
       TimeDataRetrieval,
       TimeProcessing,
       TimeRendering,
       DATEDIFF(S, TimeStart, TimeEnd) AS TotalSeconds
FROM ExecutionLog2

TimeDataRetrieval はストアド プロシージャの実行時間 + ReportServer への送信時間、TimeProcessing - レポート側でのグループ化、並べ替えなどに費やされた時間、TimeRendering はレンダリングに費やされた時間です。

次に、実行が遅い理由がわかったら、修正方法 (ストアド プロシージャの修正、インデックスの追加、レポート構造の変更など) を考えることができます。

パラメータのスニッフィング(パラメータのスニッフィングについて)を引き起こすような問題がありました。これを防ぐために、次のようにクエリで入力パラメータを使用しないでください。

CREATE PROCEDURE [dbo].[usp_MySP] @InputValue INT
AS
BEGIN
    DECLARE @SomeValue INT;
    SET @SomeValue = @InputValue;

    SELECT SomeColumn 
    FROM SomeTable
    WHERE SomeColumn = @SomeValue
END
于 2013-02-21T13:53:20.857 に答える