2016-05-25 4 views
2

私が読んでいたが対についてMARS私は、次の文に出くわした:は、セッションがトランザクション

MARSは、SQL Serverで有効に設定された

は、使用される各コマンドオブジェクトは、接続にセッションを追加します。

私は以前にセッションについて聞いたことがありますが、内部的にどのように動作し、どのようにセッションが接続に追加されているのかを理解できませんでした。私はどのような取引があり、分離タイプなどを知っています。両者の違いは何ですか?

+1

.NETに関連するセッションが分かりますか?それはデータベース内で似ています。これは、半永久的な状態のコンテナです。 –

+0

@Jackあなたはセッション状態を意味しますか? – Sadiq

+0

ASP.Netと同様のセッションであるため、SQL文(SELECT)が反復処理され、最初のSELECT文が完了する前に別の(SELECT)文が実行され始めた場合は、両方のコマンドが同じセッションを使用し、結果セットは同期的に配信されます。私は正しい? – Sadiq

答えて

2

セッションは、アプリケーションとデータベースとの対話を論理的にグループ化するためのSQL Serverの概念です。一時表はセッションスコープです。 SqlConnection.Openに電話すると、新しいセッションが開かれます。

ここMARSの内部の私の理解です:

SQL Serverは、接続ごとに同時に複数のセッションを作成することによって、MARSを実装しています。各並行コマンドは、それぞれ独自のセッションオブジェクトで実行されます。これはセッションDMVであることがわかります。

私はこのことについて気にする必要はないと思います。この内部ディテールは、フィーチャの使用方法には影響しません。特に、トランザクションと分離は影響を受けません(これらの用語に言及しているため、これを言及しています)。

関連する問題