2009-07-27 11 views
4

私はasp.netアプリケーションでコミットされたトランザクションを使用しています。SQLトレースを介してストアドプロシージャ内のトランザクションレベルを調べる

私は何らかの形でSQL Serverにアクセスすると、コミットされた読み取りが使用されていないことに疑いがあります。

SQLトレースを介してトランザクションの分離レベルを判断する方法はありますか。私が見ることができるのはです。BEGIN TRANSACTION

答えて

2

プロファイラには可能かどうか分かりません。 しかし、あなたは次のことを試すことができます...

  1. オープンSQL管理スタジオ
  2. 問題は
  3. コマンド「トランス始まる」を挿入/テーブル
  4. にいくつかのデータを更新する/新しく挿入されたを選択更新されたデータ
  5. コミットするまで、新しく挿入/更新されたデータは表示されません
  6. これは、コミットされた独立性レベルを読み取ることを証明しています
3

プロファイラで確認できることは、ログイン時に設定された分離レベルです。 「監査ログイン」イベントをトレースし、TextData列をインクルードします。これは、孤立レベルを含む束を表示します。

なぜ私はそれが何をしているのかわからないので、これはちょっと気が狂っています。これは、デフォルトのSQLの動作か、まったく同じものです。これは、それがどのように変化するかを示すものではありませんが、通常の痕跡はありますが、何千もの出来事をふるい落とすことは大きな痛みになります。

0

コードの特定の部分を見て、それを少しでも遊べるのであれば、問題のトランザクション中にDBCC USEROPTIONSを投げてテストすることができます。これは、現在の分離レベル値を返します。これは、SET TRANSACTION ISOLATION LEVELコマンドを使用してコードの一部を散らばっている場合に役立ちます。DBCC USEROPTIONSを自由に振りかけて、トランザクションごとに分離レベルがどのように設定されているかを確認してください。

関連する問題