我有一个关于 SQL Server 内存使用的问题。
当我启动 SQL Server 时,它开始消耗内存,并且随着时间的推移(2-3 小时),sqlservr.exe
进程会消耗所有内存,只留下 100 MB 可供 Windows 操作使用。
我在 perfmon 中看到,计数器“SQL Server:内存计数器”仅显示使用率 5%。那么为什么sqlservr.exe
即使只使用了 5% 的内存,也会消耗掉所有内存呢?
我想要的是sqlservr.exe
根据需要消耗内存,而不是提前消耗。我也不想对“最大服务器内存”设置限制。
谢谢你们
答案1
SQL Server 将缓存所有可能的内容,以避免(缓慢的)磁盘访问。因此,当您的实例被使用时,SQL 开始将常用对象保存在缓冲区中,直到分配的内存已满。