对于临时表,我们看到它们是依赖于连接的,我的意思是在一个连接中创建的表仅对该连接可用,并在连接丢失或销毁时自动删除.
SQL Server中的连接和会话有什么区别?
与SQL Server线程管理和调度一起使用的常见概念:
会话 - 当客户端应用程序连接到SQL Server时,双方会建立一个"会话"来交换信息.严格来说,会话与底层物理连接不同,它是连接的SQL Server逻辑表示.但出于实际目的,您可以将其视为连接(session = ~connection).请参见sys.dm_exec_sessions.这是SQL Server 2000及更早版本中存在的旧SPID.您有时可能会注意到在DMV输出中重复多次的单个会话.这是因为并行查询.并行查询使用相同的会话与客户端进行通信,但在SQL Server端,分配了多个工作线程(线程)来为此请求提供服务.因此,如果您看到多个具有相同会话ID的行,请知道多个线程正在为查询请求提供服务.
-
Run Code Online (Sandbox Code Playgroud)
连接 - 这是在较低协议级别建立的实际物理连接及其所有特性sys.dm_exec_connections.会话和连接之间存在1:1映射.
小智 6
从字面上看:Connection is Physical Communication Channel and Session is a state of information exchange. A Connection may have multiple sessions。
连接是SQL Server与应用程序之间的物理通信通道:TCP套接字,命名管道,共享内存区域。SQL Server中的会话对应于的维基百科定义会话:状态的半永久性容器的信息交换。换句话说,会话存储设置,例如您的登录信息缓存,当前事务隔离级别,会话级别SET值等。
通常,每个连接上只有一个会话,但是单个连接上可能有多个会话(多个活动结果集,MARS),并且没有连接的会话(SSB激活过程,系统会话)。也有没有会话的连接,即用于非TDS用途的连接,例如数据库镜像sys.dm_db_mirroring_connections或Service Broker连接sys.dm_broker_connections。
我从这里得到了参考
| 归档时间: |
|
| 查看次数: |
12343 次 |
| 最近记录: |