web-dev-qa-db-ja.com

SSRSブロッキングプロセス

以下のプロセス間で頻繁にブロックされるSSRSレポートサーバー(SQL Server 2008 R2)があります。

  • [dbo]。[CheckSessionLock]
  • [dbo]。[WriteLockSession]

一部のレポートの実行速度が許容できないほど遅いことがわかっています。私が知る必要があるのは、ReportServerデータベースのブロッキングが過負荷のサーバーの兆候であるかどうか、またはブロッキングによってレポートの実行が遅くなっているかどうかです。

私はそれが最初のケースであると信じる傾向がありますが、そのように決定的にそれを証明する証拠を集めることができませんでした。

https://connect.Microsoft.com/SQLServer/feedback/details/698388/blocking-in-ssrs-reportserver-database でスレッドを読みましたが、問題は大まかに認識されていますが、できませんこの問題に対処するために引用されたリンクにアクセスします。

ReportServerデータベースのブロックに関する同じ問題の根底にあるものはありますか?

7
Yasin

残念ながら、これについてできることはあまりありません。この動作は仕様です。レポートに時間がかかりすぎているためにユーザーセッションがタイムアウトすると、問題が発生します。レポートを改善するか、セッションタイムアウトを最長実行レポートより少し長く設定することができます

それを回避する理由といくつかの方法についての説明は このリンク を参照してください。

何らかの回避策としてセッションタイムアウトを増やすことができます。スクリプトは記事に記載されています。

記事から:

ただし、pingが機能しないシナリオが1つあり、それは最初のレポートの実行中に発生します。問題は、レポートの実行中、ユーザーのセッションがロックされ(ユーザーの一時スナップショットにデータが入力されるため)、ビューアコントロールからのキープアライブがブロックされることです。通常、これは問題になりません。レポートの実行に長い時間がかかることは想定されておらず、多くの場合、セッションタイムアウトが発生する前にレポートが終了するためです。残念ながら、(何らかの理由で)レポートの実行に非常に長い時間がかかる場合があります。この場合、レポートの実行中にユーザーのセッションが期限切れになり、さまざまな奇妙な動作が発生します。

SQL 2008R2以降を使用していると想定します。

はい、使用頻度の高いSSRSレポートサーバーの1つでも同じことが確認されましたが、トラブルシューティング中にこの接続 item がバグとして登録されていました。

説明したように:

SSRSはこれらのロックを発行して、マルチスレッドメカニズムを提供します。作成したレポートを実行しているすべてのスレッドが終了すると、ロックが解除されます。したがって、これらが表示された場合、通常は、別のサーバーでのクエリが遅いために問題が発生しています。

いくつかの問題は高負荷で発生する可能性があり(またはそう言う)、照合の問題によりCleanExpiredSessionsの実行が妨げられると報告されています。

また、

この動作は仕様です。セッションを存続させるために、ビューアコントロールは10分ごとにpingを試行します。サーバー側では、セッションの書き込みロックの読み取りを試みるCheckSessionLockストアドプロシージャの呼び出しから始まるGetSessionDataストアドプロシージャが呼び出されます。 pingが発生するまでにレポート処理がまだ実行中の場合、レポートの処理中にセッション書き込みロックが保持されるため、CheckSessionLockがブロックされます。 GetSessionDataタイムアウトは10分です(「SessionAccessTimeout」システムプロパティ)。レポートの処理に20分以上かかる場合、GetSessionDataタイムアウトが発生し、この問題が発生します。

これに関する詳細と解決策については、 実行中のセッションタイムアウト を参照してください。

2
KASQLDBA

ロック/ブロッキングは一貫性を確保するためのものであり、通常の動作です。

reportServerTempDBデータベースのコミットされたスナップショット分離レベルを読み取り、WriteLockSessionプロシージャでSET ISOLATION LEVEL SNAPSHOTを試すことができます。

私はソリューションを実装しなかったので、お勧めしません。

この問題の唯一の解決策は、別のレポートツールを使用することです

0
Ben