SQL Server 中会话和连接的区别

问题描述 投票:0回答:3

对于临时表,我们发现它们依赖于连接。我的意思是,在一个连接中创建的表仅适用于该连接,并在连接丢失或损坏时自动删除。

SQL Server 中连接和会话有什么区别?

sql sql-server database session database-connection
3个回答
18
投票

连接是物理通信通道,会话是信息交换的状态。一个连接可能有多个会话。

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

SET

通常每个连接上有一个会话,但也可能有 单个连接上的多个会话(多个活动结果 设置,MARS)并且存在没有连接的会话(SSB 激活的程序系统会话)。还有 无会话连接,即用于非 TDS 的连接 目的,例如数据库镜像

sys.dm_db_mirroring_connections
或 Service Broker 连接
sys.dm_broker_connections
.

我从这里

得到了答案

15
投票

SQL Server 线程管理和调度中使用的常见概念:

Sessions – 当客户端应用程序连接到 SQL Server 时,双方建立一个“会话”来交换信息。严格来说,会话与底层物理连接不同,它是连接的 SQL Server 逻辑表示。但出于实际目的,您可以将其视为连接(会话=〜连接)。请参阅 sys.dm_exec_sessions。这是 SQL Server 2000 及更早版本中存在的旧 SPID。您有时可能会注意到单个会话在 DMV 输出中重复多次。发生这种情况是因为并行查询。并行查询使用相同的会话与客户端通信,但在 SQL Server 端分配多个工作线程(线程)来服务该请求。因此,如果您看到多行具有相同的会话 ID,请知道查询请求正在由多个线程提供服务。

-

Connections – 这是在较低协议级别建立的实际物理连接,具有其所有特性 sys.dm_exec_connections 。会话和连接之间存在 1:1 映射。


2
投票

连接是客户端与 SQL Server 数据库之间的关系

Session客户端登录(连接)SQL Server数据库和客户端注销(退出)SQL Server数据库之间的时间段

© www.soinside.com 2019 - 2024. All rights reserved.