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