你目前正处于脱机状态,正在等待 Internet 重新连接

将硬盘控制器缓存与 SQL Server 一起使用

概要
下面的信息描述将 SQL Server 与控制器卡上带有缓存内存(最大 16 MB)的硬盘控制器卡一起使用的效果。使用此种类型的卡可以享受磁盘缓存带来的好处,无需考虑通常与磁盘缓存相关的内存得失。缓存算法包括写缓存和写回时的“电梯排序”,要写入的数据采用这样的排序可以最大程度地减少磁头的移动。
更多信息
问题 1
问:假设 SQL Server 服务器连接到 UPS 以避免由于电源故障带来的数据崩溃,那么使用此类型的控制器时是否会出现 SQL Server 导致的问题?

答:如果磁盘控制器无法为 SQL Server 事务日志写出数据,SQL Server 恢复将无法正确进行。


问题 2
问:此种缓存控制器对 SQL Server 的性能有何影响?

答:如果缓存控制器始终能够写入分配给它的磁盘(即使键盘出现故障、操作系统崩溃或硬盘崩溃),则不会有任何问题。相反,如果磁盘控制器延迟写入某些 SQL Server 日志数据,并选择实际应用其他日志数据(由于“电梯”排序),而且出于某些原因无法写入其余数据,则 SQL Server 无法知道某些日志已丢失。即使采用热启动,甚至从快照备份前滚,也无法正确还原数据库。最坏的情况是,在恢复过程中没有出现故障,但是稍后发现数据崩溃。

如果磁盘控制器采用了很可靠的设计,它可以允许选择性写入。包含 SQL Server 事务日志的设备必须始终可以写入。另外,如果自动热启动可以使工作恢复正常,所有 SQL Server 设备必须在检查点进行刷新。如果磁盘控制器不允许选择性写入,则唯一的替代方法是经常进行备份,并且永不依靠热启动或前滚事务日志。


问题 3
问:应当由 SQL Server 执行缓存操作,还是应当由磁盘控制器执行缓存操作?

答:具体取决于哪种方法更快。我们的实验表明,SQL Server 缓存比操作系统磁盘缓存效率更高。但是,我们无法知道它是否比特定类型的磁盘控制器使用的缓存效率更高。SQL Server 缓存可能没有硬件缓存速度快,但是它具有“内在知识”,可以更聪明地工作。

在代表性工作量下运行,也就是说,将 SQL Server 内存参数设置为支持安装所需的用户数的最小值(磁盘控制器缓存处于活动状态)。然后,将内存参数设置为该值加上磁盘控制器缓存中的 RAM 数(磁盘控制器缓存处于停用状态),再尝试运行。为了进行真正准确的比较,这两种情况下过程缓存中的页数必须相等。这多少带有一些欺骗性,因为过程缓存的大小是用占总缓存大小的百分比指定的,而总缓存大小是由内存参数和用户连接数参数指定的。总缓存大小是内存参数指定的空间减去为每个用户连接分配 42K 后剩余的量。根据过程缓存参数,将该剩余量分配给过程和数据页缓存。
GP-fault
属性

文章 ID:46091 - 上次审阅时间:11/03/2006 19:48:24 - 修订版本: 4.1

Microsoft SQL Server 4.21a 标准版, Microsoft SQL Server 6.0 标准版, Microsoft SQL Server 6.5 标准版, Microsoft SQL Server 7.0 标准版, Microsoft SQL Server 2000 标准版

  • kbhardware KB46091
反馈
s://c.microsoft.com/ms.js">