2

クライアントがライブ トランザクション システムに対して日中実行するデータ ウェアハウス パッケージがあります。ほとんどのクライアントでは問題なく動作しているように見えますが、ビジー状態のクライアントではデッドロック エラーが発生します。

デフォルトでは、SSIS は、SQL 2005 で最高の分離レベルである Serializable の分離レベルで実行されます。

SSIS パッケージはデータの読み取りのみを行っていますが、クエリのサイズが原因でデッドロックが発生し、他のプロセスが更新/挿入している間にロックがページ ロックにエスカレートされます。

クライアントは通常、SQL 2005 の Standard Edition を実行しているため、使用できる機能はこれだけです。

パッケージの IsolationLevel を ReadCommitted (または他の Isolation レベル) に変更すると、これらのロックの問題が解決するかどうかは誰にもわかりません。そして、それがそれらを解決する場合、副作用(ファントム読み取り、反復不可能な読み取りなど)はありますか

ありがとう、

4

1 に答える 1

1

読み取りコミットおよび反復可能読み取り分離レベル、およびそれらが生成する可能性のある潜在的な問題についてのすばらしい議論があります。

http://blogs.msdn.com/craigfr/archive/2007/04/25/read-committed-isolation-level.aspx http://blogs.msdn.com/craigfr/archive/2007/05/09/repeatable -read-isolation-level.aspx

それがあなたに影響を与えるかどうかは、あなたのシステムで実行されているテーブルスキーマと更新の種類に依存します。

データのみを読み取る場合は、スナップショットアイソレーションが最適なオプションです。SSISはこれをサポートしていませんが、SSISトランザクションを回避し、SQLコードでBEGINTRANSACTIONを発行できます。

于 2009-01-24T05:21:24.087 に答える