擦亮自己的眼睛去看SQLServer之整体介绍
存储引擎包括存取方法、事务管理和缓冲区管理器。 存取方法(Access Methods) SQL Server需要定位数据库时,会调用存取方法代码。它提供了一组代码,用来创建和请求对数据页面和索引页面进行扫描,并且将准备好的OLE DB数据行集返回给关系引擎。存取方法并不
存储引擎包括存取方法、事务管理和缓冲区管理器。
存取方法(Access Methods)
SQL Server需要定位数据库时,会调用存取方法代码。它提供了一组代码,用来创建和请求对数据页面和索引页面进行扫描,并且将准备好的OLE DB数据行集返回给关系引擎。存取方法并不真正进行操作,它只负责向缓冲区管理器发出请求。存取方法不仅仅如此,它还会预测哪些数据页面索引页面即将处理,这样才能保证SQLServer高速处理。
事务管理器(Transaction Manager)
事务管理器包括两个组件:日志管理器和锁管理器。
锁管理器负责数据的并发保护和基于特定隔离级别的管理。
日志管理器负责将事务日志提前记录于日志文件中,从而起到保护数据的作用。访问方法代码请求的所有数据更改都必须记入日志中,这种方式称为预写日志。这是数据修改(插入、更新、删除、分配释放区和页、创建删除索引等)唯一总是写磁盘的的操作。它记录的是修改操作发生以后数据页面发生的改变,因此我们很难从中发现有意义的信息。除非用些第三方的工具。
缓冲区管理器(Buffer Manager)
缓冲区管理器用来管理缓冲区内存池中数据页面的分布。所有对数据的操作,都是先在缓冲区中操作的。然后由SQLOS中的检查点或者是惰性写入器同步到磁盘中。这样能保证SQLServer更快的响应请求。操作完成后就结果返回给访问方法。
四、缓冲池
缓冲池是SQLServer最消耗内存的部分。主要包含执行计划缓存和数据缓存。
五、SQLOS
可以理解为是SQLServer的资源管理器,主要负责与操作系统中的一些交互操作。如:内存分配、资源调度、I/O操作、进程线程管理以及同步、闩锁等等。这部分在此不展开,后期考虑专门写一章。
三、SQLServer执行模型
从图中可以看出,我这的执行模型也说的是整个SQLServer服务端在接收请求时,要发生的事情。但是和前面一样,SQLServer很多时候很多细化过于复杂没有办法能用一章图描述清楚。这个图简单的说明了SQLServer的执行模型。在分析这个图前,要明确一个问题。SQLServer是基于C/S的结构的产品。这样很明显就分为客户端与服务端。平时管理数据库的MSSMS以及我们需要访问数据库的系统就是属于SQLServer的客户端,SQLServer服务端主要是由一些服务方式构成。
因为是C/S,那么客户端的所有请求都必须传输到服务端,才能被执行。这样的话就涉及的双方通信的协议,这个协议在SQLServer2005后,就称为SNI。包的格式就是TDS。客户端的TDS通过SQLServer支持的协议传输到SQLServer服务端,服务端有一个组件叫连接监听服务,它一直在监听这请求端口。它负责监听新的连接,清除失败连接,将结果集、消息和状态返回给客户端。连接监听服务会把包发送给协议层,协议层对这个包进行解包,提取里面要执行的SQL语句,交给关系引擎,关系引擎经过处理后生成执行计划,并且执行计划。一旦关系引擎开发执行工作计划时,就会创建任务对象。任务对象必须关联一个空闲工作线程。工作线程关联到新任务后,状态设置为初始化。当完成初始化后,工作线程就转成为可运行。这时工作线程就准备就绪,只要有空闲的调度器就可以执行了。如果执行过程中遇到定时器等待、请求资源等待、I/O等待就会挂起移至相应的列表中。SQLServer采用了非抢占式调度。一个线程会完成这个任务的操作。不存在上下文切换,当然如果不是SQLServer的代码则采用抢占式调度,比如扩展存储过程。
今天分析就到此结束,文中如有描述不当的地方,欢迎指出。共同进步才是硬道理。

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

热门话题

对于 SQL Server 数据库中已存在同名对象,需要采取以下步骤:确认对象类型(表、视图、存储过程)。如果对象为空,可使用 IF NOT EXISTS 跳过创建。如果对象有数据,使用不同名称或修改结构。使用 DROP 删除现有对象(谨慎操作,建议备份)。检查架构更改,确保没有引用删除或重命名的对象。

导入步骤如下:将 MDF 文件复制到 SQL Server 的数据目录(通常为 C:\Program Files\Microsoft SQL Server\MSSQL\DATA)。在 SQL Server Management Studio(SSMS)中,打开数据库并选择“附加”。单击“添加”按钮,选择 MDF 文件。确认数据库名称,点击确定按钮即可。

当 SQL Server 服务无法启动时,可采取以下步骤解决:检查错误日志以确定根本原因。确保服务帐户具有启动服务的权限。检查依赖项服务是否正在运行。禁用防病毒软件。修复 SQL Server 安装。如果修复不起作用,重新安装 SQL Server。

要查看 SQL Server 端口号:打开 SSMS,连接到服务器。在对象资源管理器中找到服务器名称,右键单击它,然后选择“属性”。在“连接”选项卡中,查看“TCP 端口”字段。

SQL Server 数据库文件通常存储在以下默认位置:Windows: C:\Program Files\Microsoft SQL Server\MSSQL\DATALinux: /var/opt/mssql/data可通过修改数据库文件路径设置来自定义数据库文件位置。

若误删 SQL Server 数据库,可采取以下步骤恢复:停止数据库活动;备份日志文件;检查数据库日志;恢复选项:从备份恢复;从事务日志恢复;使用 DBCC CHECKDB;使用第三方工具。请定期备份数据库并启用事务日志以防止数据丢失。

如果 SQL Server 安装失败,可通过以下步骤清理:卸载 SQL Server删除注册表项删除文件和文件夹重启计算机

SQL Server 英文安装可通过以下步骤更改为中文:下载相应语言包;停止 SQL Server 服务;安装语言包;更改实例语言;更改用户界面语言;重启应用程序。
