声明
笔记内容为个人学习整理,绝大部分内容来源于网络。
文章内含有自己的总结、拓展与试验,仅作为个人学习资料,转载请联系原作者。
文章末尾有含原文出处,本文尚未获得所有的原作者授权,但是我不要脸。
MSSQL体系结构
在接触一个新数据库的时候,深入了解RDBMS的系结构可以更好的理解SQL语句的执行过程,分析各种问题。
- 协议层(Protocols)
- 关系引擎(Relational Engine),也成为查询处理器(Query Processor)
- 存储引擎(Storage Engine)
- SQLOS
- MSSQL体系结构

(图片来自 博客园-匠心十年 )
协议层
所谓的协议层就是Client与Server进行通信所使用的连接层。
Client(程序、SSMS、ODBC等)访问数据库的时候,首先会通过SNI(SQL Server Network Interface)选择建立通信的协议,然后与Server进行通信。
实际上在SQL Server当中不仅仅是Client可以连接Server实例,不同实例之间也可以通过连接服务器(Link Server)来达到互相访问的目的,实现跨实例查询。
通信连接建立成功以后,程序会把需要执行的SQL语句转换成TDS(TDS:Tabular Data Stream 即表格格式数据流协议)协议包,然后通过连接的通信协议发送到Server。
Server协议层收到请求之后会把请求转换成查询处理器可以处理的形式。
可使用协议
- TCP/IP – 应用最广泛的协议
- `Named Pipes – 仅为局域网(LAN)提供服务
- Shared Memory – 仅本机
- VIA – 已废除(MSSQL 2008版本的配置管理器中还有,但是2012当中已经看不到了)
具体连接协议可以通过SQL Server进行配置,可以根据不同的连接环境选择不同的连接协议。
如果客户端并未指定使用哪种协议进行连接,则可配置遍历尝试所有协议进行连接。
协议配置方法
打开SQL Server配置管理器(SQL Server Configuration Manager),选择SQL Server网络配置,选择需要配置的实例名(默认是MSSQLSERVER),可以看到有哪些协议可以使用,可以选择禁用或启用,也可以单击右键进行端口和IP的详细配置。