2012-06-26 323 views
16

SQL Reporting Server(2008 R2)をインストールしました。いくつかのレポートがあります。しかし、私はいくつかのパフォーマンスの問題があります。SQL Reporting Services:最初の呼び出しは非常に遅い

サーバーへの最初の呼び出し(例でレポートインターフェイスを使用)は、非常に遅い(最高で30〜45秒のようなもの)。

レポートの生成は「高速」(1-2秒)です。

サーバーへの次回の呼び出しは、翌日までは常に高速です。私はそれがメモリに多くのものをロードする印象を持っています。しかし、何がメモリにロードされるのに30〜45秒かかりますか?それを一度だけロードする方法は?

サーバは十分です(クアッドコア、8GBのRAM、今のところ容量は決してありません)。

何が問題ですか?どうすれば解決できますか?

レポートは週に4~5回しか起動しないため、これを変更できないと常に遅くなります。そして、それが顧客のために利用可能なので、私は彼らにこれを理解させることができません(そしてレポートはウェブサイトを通して呼び出されるので、私はタイムアウトする危険があります)。

は非常に

+0

実行計画は、しばらく使用されていない場合は除外されています。 –

答えて

21

がSSRSの問題のようです。レポートに間違いはありません。

SSRSは、長時間使用しなくても最初にアクセスするときにSSRSが読み込む時間が長くなるという「正常」です。この問題は、SSRSがどのように動作し、SSRSが特定の期間後に定期的にアプリケーションドメインを再起動するかによって発生します。アプリケーションドメインを再起動した後は、SSRSへの最初の要求時にすべての設定をロードする必要があり、かなりの時間がかかります。サンディエゴは、SSRSは、いくつかの問題を持って、言ったように

Thisブログのショーは状況

+1

私は現在このソリューションを試しています。もしそれがうまくいくと明日は表示されます:) – J4N

+0

:)今朝は本当にうれしかったです。なぜSSRSが定期的にアプリケーションドメインを再起動する必要があるのか​​分かりますか? – J4N

+0

私はhahahの仕事を知っています – Diego

1

をありがとう、私が思い付くことができる最高のソリューションは、WindowsサービスでのWindowsバッチコマンドで使用して、レポートのHTTPページに「カール」コマンドを発行することでした。ユーザーが入って来た前に、これは毎朝のページ(複数可)を駆け

(仕事はしばらく前だった)もうコードにアクセスすることはできませんが、この質問は、カールを使用する方法を示しています。

http://blogs.plexibus.com/2009/01/15/rest-esting-with-curl/

0

これはSQL Serverとは完全に無関係かもしれません。コード署名失効リストのチェックの問題がないかどうかを確認してください。Fix slow application startup due to code sign validation

+0

私はそれらの2つのレジストリを入れようとしましたが、それは助けなかった、今朝私はテストし、同じ問題。 – J4N

1

の周りの仕事です。最初の呼び出しは、サーバー構成に関しては遅いです。 rsreportserver.config(C:¥Program Files¥Microsoft SQL Server¥MSRS10.MSSQLSERVER¥Reporting Services¥ReportServer¥に分からない場合には、次の設定をお勧めします)

SSRSで使用される最大メモリ:(7ギガバイトを意味する)

<WorkingSetMaximum>7000000</WorkingSetMaximum> 

あなたが最初の呼び出しを改善したい場合は、あなたが(分単位)を設定することができます

<RecycleTime>4320</RecycleTime> 

は実際にSSRSをリセット(再利用を持っています)バッファをクリーンアップする時間。デフォルトでは720分(12h)に設定されているため、毎朝レポートを開くと、実際には非常に遅く読み込まれます。 必要に応じて、リサイクル時間をより長く(2-3日)設定することができます。バッファがいっぱいになって空白のページのみが表示されるため、Reporting Servicesを手動で再起動する必要があるため、時間をお勧めしません。

1

ここに私が問題を解決するために書いたpowershellスクリプトがあります。午前1時に実行するタスクとしてセットアップされます。

Stop-Service "SQL Server Reporting Services (MSSQLSERVER)" 
Start-Service "SQL Server Reporting Services (MSSQLSERVER)" 
$wc = New-Object system.net.webClient 
$cred = [System.Net.CredentialCache]::DefaultNetworkCredentials 
$wc.Credentials = $cred 
$src = $wc.DownloadString("http://localhost/Reports/Pages/Report.aspx?ItemPath=***NAME OF HOME PAGE***") 
関連する問題