2016-08-29 7 views
0

一時テーブルの場合、接続に依存していることがわかります。ある接続で作成されたテーブルはその接続でのみ使用でき、接続が失われたり破棄されると自動的に破棄されます。SQL Serverのセッションと接続の違い

SQL Serverの接続とセッションの違いは何ですか?

+2

これはすでに求められて、ここで答えています:http://dba.stackexchange.com/questions/13698/what-is-the-difference-between-a-connection-and-a-session –

+0

、ここで:https://social.msdn.microsoft.com/Forums/sqlserver/en-US/3975aea5-bc92-424a-a1c0-75c6e5e2f8a6/what-is-the-differencs-between-sessions-and-connections-in-sqlserver ?フォーラム= sqldataaccess – Anton

答えて

1

リテラル:Connection is Physical Communication Channel and Session is a state of information exchange. A Connection may have multiple sessions

接続は、SQL Serverとアプリケーション間の物理的な通信チャネル(TCPソケット、名前付きパイプ、共有メモリ領域)です。 SQL Serverのセッションは、情報交換のための半永久的な状態のコンテナであるsessionのWikipediaの定義に対応しています。つまり、セッションにはログイン情報のキャッシュ、現在のトランザクション分離レベル、session level SET valuesなどの設定が保存されます。

通常、各接続には1つのセッションがありますが、1つの接続で複数のセッションが存在する可能性があります。Multiple Active Result Sets、MARS )、接続のないセッションがあります(SSB activated proceduressystem sessions)。セッションなしの接続、つまりデータベースミラーリングsys.dm_db_mirroring_connectionsやService Broker接続sys.dm_broker_connectionsのように、TDS以外の目的で使用される接続もあります。

私は、SQL Serverのスレッド管理とスケジューリングで慣れるhere

+1

[ここ](http://dba.stackexchange.com/a/13700/4626)からコピーしましたか? –

+0

はい、私は同じリンクから参照を得ました、私は私の答えで述べました –

1

共通概念からの参照を得た:

セッション - クライアントアプリケーションがSQL Serverへの二つの側面を接続したとき情報を交換するための「セッション」を確立する。厳密に言えば、セッションは基本的な物理接続と同じではなく、接続のSQL Server論理表現です。しかし、実際には、これを接続(セッション=〜接続)と考えることができます。 sys.dm_exec_sessionsを参照してください。これは、SQL Server 2000以前のバージョンに存在していた古いSPIDです。 DMV出力で複数のセッションが繰り返されることがあります。これは、並列クエリのために発生します。並列クエリは、クライアントと通信するために同じセッションを使用しますが、SQL Server側では、この要求を処理するために複数のワーカー(スレッド)が割り当てられます。したがって、同じセッションIDを持つ複数の行がある場合は、クエリ要求が複数のスレッドによって処理されていることがわかります。

- 

接続 - これは、その特性sys.dm_exec_connectionsのすべてと下位プロトコルレベルで確立された実際の物理的な接続です。セッションと接続の間には1対1のマッピングがあります。