3

に関するいくつかの質問dm_exec_sessions。クエリを実行すると

select * from sys.dm_exec_sessions 

status他の列 aと a列の中で私を示していtransaction_isolation_levelます。

sys.dm_exec_sessions認証されたセッションごとに行を返すのは私の理解です。私の理解では、このセッションを使用していくつかのクエリ/トランザクションを実行できます。

  1. transaction_isolation_levelセッションごとに返されることの意味は何ですか? その接続を使用してデータベースで実行された最後のトランザクションの分離レベルですか?

  2. スリープ状態のセッションがいくつか (2 つ) あります。どういう意味ですか?これについて心配する必要がありますか?これらのトランザクションは、ロールバックに失敗した Web サーバーからのものですか?

4

2 に答える 2

4

私の理解では、このセッションを使用していくつかのクエリ/トランザクションを実行できます。

これは正しくありません。常に最大 1 つのクエリを実行でき、セッションで最大 1 つのユーザー アクティブ トランザクションを持つことができます。

接続には複数のセッションを含めることができますが、それは別の話です。sys.dm_exec_connections

SERIALIZABLE セッションを発見し、その理由が気になる場合は、new TransactionScope() の使用は有害であると見なされることを思い出してください。

于 2012-07-04T19:52:15.910 に答える
1

セッション自体には transaction_isolation_level があります。また、そのセッションで実行されているバッチ/リクエストは、明示的に変更しない限り、その transaction_isolation_level を使用します。

Sleeping のステータスは、セッションがアイドル状態であり、現在バッチ/リクエストを実行していないことを意味します。(IE、クライアント接続が実行するコマンドを送信するのを待っています)。通常は気にする必要はありません。

sys.dm_exec_sessions の公式ドキュメントはこちら: http://msdn.microsoft.com/en-us/library/ms176013.aspx

于 2012-07-04T18:23:41.273 に答える