我的数据库大小约为1GB(根据我的db的mdf文件)。 我的数据库服务器有4GB的内存。 在活跃的计算机上查看内存消耗,使用率约为85%(包括操作系统等)
这是否意味着所有数据库读取活动在内存中独自工作(即整个数据库在内存中)? 还是还有一个情况,它将不得不去磁盘?
是的,整个数据库可能存储在内存中。 它将以检查点间隔将脏页面刷新到磁盘。 请注意,所有更新都必须写入日志,并在提交之前等待日志logging在持久存储上加固。 这篇旧文章SQL Server 2000 I / O基础知识包含您将需要的所有细节和更多内容。
但是你不必猜测,你可以准确地测量这个值,看看是否发生。 有关的performance指标是:
整个数据库(即数据)不会被存储在内存(SQL服务器)。 在检查索引和/或键之后,它将检索指向数据文件中您正在查找的数据的位置的指针,并且然后可能转到光盘以检索它。 如果没有键或索引,将不得不扫描整个堆。
根据您正在运行的SQL Server版本,可能会有caching使用良好的数据的策略,以尽量减less磁盘读取。
您可以获得内存数据库,例如MySql Cluster数据库….这是为了适应整个服务器群集的内存中的ENTIRE数据库,以实现高可用性/灾难恢复和快速数据检索。