2011-02-06 112 views
1

我想知道如何配置Microsoft SQL Server以下列方式工作:缓冲问题

  • 所有的数据库写入是“写的背后”,所有的查询操作主要是出于的RAM缓存(用于速度),即它在后台将数据持久存储在硬盘驱动器中。

原因是什么?速度。我们假设底层机器(其Amazon EC2实例)的可靠性为99.99%,因此我们不介意在RAM中缓存所有数据(即使出现故障,我们也可以自行从第三方数据中自行重建数据库源)。

例如:

  • 用户1写入数据包X到数据库。
  • 用户2在2ms后查询这个相同的数据包X.
  • 用户2应该看到数据包X,因为SQL将直接从其RAM缓存中提取数据包(即使数据包X尚未保存到硬盘驱动器中)。
  • 数据包X将在闲暇时间持续到硬盘驱动器,也许在500ms之后。
+0

有关如何设置和配置SQL Server或如何在生产环境中运行的问题,最好在[ServerFault.com](http://serverfault.com)上询问系统管理员和SQL DBA挂起的位置。这里是一个**编程相关的问题**问题 – 2011-02-06 10:45:23

+0

我想知道T-SQL编程代码来配置它。 – Contango 2011-02-06 11:33:04

回答

3

如果您的SQL Server实例中有大量内存并且设置了较高的最小内存设置,那么SQL将尝试最大化它的使用。

检查点进程是强制脏页面写入磁盘(这是自动发生,但可以被迫),所以你可能想读一下。 http://msdn.microsoft.com/en-us/library/ms188748.aspx

这个主题是相当复杂的,可以通过您使用的硬件和解决方案来实现。例如,虚拟化带来了其他一些考虑因素。