我的数据库大小约为 1gb(根据我的数据库的 mdf 文件)。我的数据库服务器有 4GB 的内存。查看活动时计算机上的内存消耗,它的使用率约为 85%(包括操作系统等)
这是否意味着所有数据库读取活动都单独在内存中工作(即整个数据库都在内存中)?还是仍然存在必须转到磁盘的情况?
是的,整个数据库很可能存储在内存中。它将以检查点间隔将脏页刷新到磁盘。但请注意,所有更新都必须写入日志,并在提交之前等待日志记录在持久存储上得到强化。这篇旧论文SQL Server 2000 I/O Basics包含您需要的所有详细信息,甚至更多。
但是你不必猜测,你可以准确地测量它,看看它是否发生。相关的性能计数器是:
小智 -5
整个数据库(即数据)不会存储在内存(sql server)中。检查索引和/或键后,它将检索指向您要查找的数据在数据文件中的位置的指针,然后可能会转到光盘来检索它。如果没有键或索引,则必须扫描整个堆。
根据您运行的 SQL Server 版本,可能有一些策略可以缓存常用数据以最大程度地减少磁盘读取。
您可以获取内存中的数据库,例如 MySql Cluster 数据库......这旨在将整个数据库放入服务器集群的内存中,以实现高可用性/灾难恢复和快速数据检索。
| 归档时间: |
|
| 查看次数: |
538 次 |
| 最近记录: |