连接和会话之间有什么区别?


51

连接和会话之间有什么区别以及它们之间的关系是什么?

Answers:


54

连接是SQL Server与应用程序之间的物理通信通道:TCP套接字,命名管道,共享内存区域。SQL Server中的会话对应于的维基百科定义会话:状态的半永久性容器的信息交换。换句话说,会话存储设置,例如您的登录信息缓存,当前事务隔离级别,会话级别SET等。

通常,每个连接上只有一个会话,但是单个连接上可能有多个会话(多个活动结果集,MARS),并且没有连接的会话(SSB激活过程系统会话)。还有没有会话的连接,即用于非TDS用途的连接,例如数据库镜像sys.dm_db_mirroring_connections或Service Broker连接sys.dm_broker_connections


(令人震惊的噪音)当您意识到SSMS正在使用MARS并因此在每个打开的文件选项卡上使用不同的会话时,这就是为什么#temp不能在不同的打开文件的选项卡中删除或选择表的原因,因为它们是会话作用域的。
GibralterTop

4
  • 连接表示通过网络或通过共享内存在本地与服务器的连接。

  • 会话代表SQL Server中的用户进程。

  • 一个连接可以链接零个或多个会话。


3

您可以查询sys.dm_exec_sessions动态管理视图,以了解有关在SQL Server 2012实例上启用了通用条件合规性后成功登录和失败登录的信息。

sys.dm_exec_connections动态管理视图提供有关与数据库引擎实例建立的连接的信息。如果在SQL Server 2012实例上启用了通用标准合规性,则无法在此动态管理视图中查询有关成功登录和失败登录的信息。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.