SQL Server中会话和连接的区别

hs1ihplo  于 2023-02-11  发布在  SQL Server
关注(0)|答案(3)|浏览(158)

对于临时表,我们看到它们是依赖于连接的,我的意思是在一个连接中创建的表只对该连接可用,并且在连接丢失或破坏时自动删除。
SQL Server中的连接和会话有什么区别?

f0brbegy

f0brbegy1#

字面上: 一月一日**

连接是SQL Server和应用程序之间的物理通信通道:TCP套接字、命名管道、共享内存区域。SQL Server中的会话对应于Wikipedia定义的session:信息交换状态的半永久容器。换句话说,会话存储设置,如登录信息的缓存,当前事务隔离级别,session level SET values等。
通常每个连接上有一个会话,但单个连接上可能有多个会话(Multiple Active Result Sets、MARS),也可能有没有连接的会话(SSB activated proceduressystem sessions)。还有没有会话的连接,即用于非TDS目的的连接,如数据库镜像sys.dm_db_mirroring_connections或Service Broker连接sys.dm_broker_connections
我在这里找到了参考资料

68de4m5k

68de4m5k2#

用于SQL Server线程管理和调度的常见概念:
会话-当客户端应用程序连接到SQL Server时,双方将建立一个“会话”以交换信息。严格地说,会话与底层物理连接不同,它是连接的SQL Server逻辑表示。但出于实用目的,您可以将其视为连接(session =~ connection)。请参阅sys.dm_exec_sessions。这是SQL Server 2000及更早版本中存在的旧SPID。有时您可能会注意到在DMV输出中一个会话重复多次。这是由于并行查询造成的。并行查询使用同一会话与客户端通信,但在SQL Server端使用多个工作进程(线程)来服务此请求。因此,如果您看到多个行具有相同的会话ID,则知道查询请求正在由多个线程服务。

-

连接-这是在较低协议层建立的实际物理连接,具有其所有特征sys.dm_exec_connections。会话和连接之间存在1:1Map。

bakd9h0s

bakd9h0s3#

连接是客户端和SQL Server数据库之间的***关系。
会话是***客户端登录(连接)SQL Server数据库与客户端注销(退出)SQL Server数据库之间的***时间段。

相关问题