2005年のレポートは2〜約250ページで、平均は10ページです。レポートが作成されたとき、開発者は10ページ程度が適切な数であり、ビジネスドメインをあまり知らなくても適切であると言われました。彼は、レポートサービスが正しいアプローチであると判断しました。
レポートがPRODに展開されたので、レポートのタイムアウトについていくつかの苦情があります。要求されているレポートのサイズ(250ページ)を考えると、開発者も私もこれについてはそれほど驚いていません。
私の質問は、95%の時間で機能し、残りの5%で機能する現在のレポートを使用するために、どのようなオプションが必要かということです。レンダリングパフォーマンスなどを改善するための構成オプションはどこかにありますか?
レポートは返品承認に使用されるため、返品のサイズは非常に大きくなります。各承認ページには、ロゴとバーコードが付いた4つの異なる返品ラベルがあります。
明確にするために:
レポートは、レポートサービスからレポートビューアにかなり迅速にレンダリングされますが、PDFにエクスポートする場合は、ロードに時間がかかる場合です。
SSRSのレポートごとにレポート実行タイムアウト設定があります。デフォルトでは、デフォルトのシステム設定を使用するように設定されていますが、レポートマネージャーまたはSSMSを使用してカスタマイズできます。
データベースコマンドのタイムアウトではありませんか?これは接続文字列で調整できます。非効率的なのはレポートですか、それともクエリですか? SSRSレポートの250ページは、それほど悪くはありません。非常に大きなレポートを頻繁に実行します。 SSRSは、実際には、使用している他のほとんどのレポートエンジンよりも優れています。
次のいずれかをいじることができます。
1)SessionTimeoutおよびSessionAccessTimeoutシステムプロパティを変更します。
これらの値を設定するrs.exeのサンプルスクリプトを次に示します。
Public Sub Main()
Dim props() as [Property]
props = new [Property] () { new [Property](), new [Property]() }
props(0).Name = "SessionTimeout"
props(0).Value = timeout
props(1).Name = "SessionAccessTimeout"
props(1).Value = timeout
rs.SetSystemProperties(props)
End Sub
このスクリプトは、次のコマンドで実行できます。
rs -i sessionTimeout.rss -s http://yourserver.com/reportserver -v timeout="6000"
タイムアウトは秒単位で表されるため、この例では、SessionTimeoutとSessionAccessTimeoutsを約1時間半に設定します。
(経由 http://blogs.msdn.com/b/jgalla/archive/2006/10/11/session-timeout-during-execution.aspx )
2)レポートマネージャーを使用してレポート実行タイムアウトを変更するレポートマネージャーを開くページの上部にある[サイトの設定]をクリックします。これにより、サイトの[一般プロパティ]ページが開きます。
レポート実行タイムアウトレポート処理が特定の秒数後にタイムアウトするかどうかを指定します。 (経由 http://msdn.Microsoft.com/en-us/library/ms181194.aspx )
3)HttpRuntime ExecutionTimeoutを設定します
<system.web>
<httpRuntime executionTimeout = "10800" />
</system.web>
4)レポートサーバーのスクリプトタイムアウトを増やします
5)サーバーでタイムアウトしないようにレポートを設定します