【发布时间】:2013-01-18 09:49:05
【问题描述】:
我有一个正在运行并连接到 sql server 2008 数据库的服务,问题是我的查询在第一次运行时需要很长时间,但是在缓存时它完成得非常快。 SQL server 2008是否每隔一段时间自动清空缓存?
【问题讨论】:
标签: sql-server-2008 caching memorycache
我有一个正在运行并连接到 sql server 2008 数据库的服务,问题是我的查询在第一次运行时需要很长时间,但是在缓存时它完成得非常快。 SQL server 2008是否每隔一段时间自动清空缓存?
【问题讨论】:
标签: sql-server-2008 caching memorycache
SQL Server 不会释放内存,除非服务器上存在内存压力或者您明确告诉它这样做。
查看微软支持:
http://support.microsoft.com/kb/321363
另一个原因可能是其他需要放入内存的数据库对象正在将您正在使用的数据库对象推出缓冲区。在这种情况下,分配给实例的更多内存或更高效的查询会有所帮助。
因此,要么服务器上的其他应用程序存在内存压力,要么您没有为当前工作负载分配足够的内存给实例,但是没有定期的调度进程本身进行清理SQL Server 内存缓冲区。
【讨论】: