mssql sqlserver数据库中会话、连接、进程之间的关系


摘要:
下文讲述mssql sqlserver下会话、连接、进程之间的关系



一、sqlserver下会话、连接、进程简介

会话:会话是从通信开始到通信结束的通信双方之间的上下文。
会话是存在于实例中的逻辑实体。
这个上下文是服务器端的一块内存:它记录了这次连接的客户机,哪个应用程序,哪个用户登录以及其他信息。
————————————————————————————
连接:连接是从客户端到mssql sqlserver实例的物理路径。
该连接可以在网络上建立,也可以通过IPC机制在本地机器上建立。通常建立客户端进程和专用服务器或调度程序之间的连接。
————————————————————————————
进程:进程是代表客户会话完成工作的进程。
应用程序发送到数据库的SQL语句最终被服务进程接受和执行。
无论是共享服务器还是专用服务器,服务进程的角色都是处理提交的SQL语句。
————————————————————————————

一、sqlserver下会话、连接、进程之间的关系

会话与连接同时建立。
他们是同一事物的不同层次。
简而言之,
连接是物理客户端和服务器之间的通信链路,
会话是逻辑用户和服务器之间的通信交互。
可以在连接上建立零个,一个或多个会话。
即使他们共享相同的数据库物理连接,每个会话都是独立的和独立的。
一次会话中的提交不会影响该连接上的任何其他会话。
事实上,没有相应的对话也可能有连接。
另外,会话可以有连接或没有连接。借助高级连接功能(如连接池),
客户可以在会话保持不变的情况下删除物理连接(但会话空闲)。
当客户端在此会话上执行操作时,它将重新建立物理连接。
————————————————————————————
例:
我们登入一个业务管理系统,系统将建立一个”连接”,当我们打开一个Tab ,就建立一个会话,打开另外一个Tab,就会建立一个新的会话,
连接断开,将会释放相关资源。
————————————————————————————
专用服务器:同一连接上的所有会话由同一进程创建。
共享服务器:同一连接上的会话可能由不同的进程创建。