我可以在内存中安装整个数据库吗?

我的数据库大小约为1GB(根据我的db的mdf文件)。 我的数据库服务器有4GB的内存。 在活跃的计算机上查看内存消耗,使用率约为85%(包括操作系统等)

这是否意味着所有数据库读取活动在内存中独自工作(即整个数据库在内存中)? 还是还有一个情况,它将不得不去磁盘?

是的,整个数据库可能存储在内存中。 它将以检查点间隔将脏页面刷新到磁盘。 请注意,所有更新都必须写入日志,并在提交之前等待日志logging在持久存储上加固。 这篇旧文章SQL Server 2000 I / O基础知识包含您将需要的所有细节和更多内容。

但是你不必猜测,你可以准确地测量这个值,看看是否发生。 有关的performance指标是:

  • 页面预期寿命页面将保留在没有引用的缓冲池中的秒数。
  • 页面读取/秒每秒发出的物理数据库页读取数。 此统计信息显示所有数据库的物理页面读取总数。 因为物理I / O很昂贵,所以可以通过使用更大的数据caching,智能索引和更高效的查询,或通过更改数据库devise来最大限度地降低成本。
  • 页面写入次数/秒每秒发出的物理数据库页面写入次数。

整个数据库(即数据)不会被存储在内存(SQL服务器)。 在检查索引和/或键之后,它将检索指向数据文件中您正在查找的数据的位置的指针,并且然后可能转到光盘以检索它。 如果没有键或索引,将不得不扫描整个堆。

根据您正在运行的SQL Server版本,可能会有caching使用良好的数据的策略,以尽量减less磁盘读取。

您可以获得内存数据库,例如MySql Cluster数据库….这是为了适应整个服务器群集的内存中的ENTIRE数据库,以实现高可用性/灾难恢复和快速数据检索。