存储系统----SQL SERVER I/O

这里,我们开始研究SQL Server如何生成I/O。我们关心的是读取现有数据和写入新数据。最基本的SQL Server是由驻一些文件组成,这些文件驻留在服务器的文件系统内。通常,不同的计算机系统组件以不同的速率执行。在CPU里处理项目的速度,比处理来自处理器缓存的请求的速度更快。L2L3 CPU缓存比计算机内存速度更快。服务器内存比任何I/O组件更快。

SQL Server会尝试通过缓存系统内存中的任何数据,以减轻相对缓慢的I/O系统。新接收的数据将首先通过SQL Server预写日志( WAL)写入SQL事务日志,然后被写入托管在服务器内存中的缓冲区页面。这个过程确保了数据库可以在发生故障时进行恢复。

在内存中存储缓存区页面,确保将来读出以及时返回给请求者。不幸的是,服务器内存是不是无限的。在某些时候,SQL Server需要写入数据。在第一章中你学到了有关SQL Server如何使用Lazy Writer和检查点进程将数据写入磁盘。本章将介绍操作系统和存储子系统实际上是如何将这个数据传到磁盘存储的机制。

与读请求相比,写操作是由SQL Server的工作线程所产生。工作线程使用SQL Server异步I/ O引擎来初始化I/O读取操作。通过使用一个异步操作,当读请求完成时,工作线程可以执行其他任务。异步I/O引擎依赖Windows和底层存储系统,来成功读取,并将数据写到永久存储。

SQL Server采用了Win32API WriteFileGather和ReadFileScatter的优势。WriteFileGather从不连续的缓冲区收集数据,并将这些数据写入磁盘。 ReadFileScatter从文件中读取数据并将数据分散放到多个不连续的缓冲区。 这些分散/收集(scatter/gather)API允许潜在的I/ O操作的捆绑,从而减少物理读和写操作的实际数量。

了解Windows存储是调校SQLServer I / O性能和保证数据完整性的关键。本章旨在用适当的术语来武装DBA和设计人员,以便与其他信息技术学科沟通。开放的、可靠的沟通是关系型数据管理最终成功的关键。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值