sql-server – 如何释放空闲SQL Server数据库使用的内存?

前端之家收集整理的这篇文章主要介绍了sql-server – 如何释放空闲SQL Server数据库使用的内存?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我们有一个sql Server与几百个数据库.该服务器上的许多数据库每周仅使用几次.我们有一个问题,sql Server有时变得非常慢.当发生这种情况时,内存使用率指示为99%,并发生分页.为了解决这个问题,我们每天晚上安排重新启动sql服务,以卸载所有这些数据库并释放内存.

释放空闲数据库使用的内存而不使sql Server失效的正确方法是什么?我们希望自动卸载在过去30分钟内未被访问的任何数据库.

注意:我正在寻找一个适用于sql 2005的解决方案.但是,如果sql 2008中有一个功能,我想知道这一点.

解决方法

sql Server将自动释放所有可以释放的内存,并避免分页.如果遇到分页,则99%的内存正在使用中,无法释放.您需要调查内存是如何使用的,可能是外部组件(如sp_oa_xxx)创建的对象或分布式查询.首先调查内存消费者,查看 sys.dm_os_memory_clerks并阅读 How to use the DBCC MEMORYSTATUS command to monitor memory usage on SQL Server 2005.

作为附注,您已经有自动关闭不使用的数据库方法alter database <dbname> set auto_close on

AUTO_CLOSE: When set to ON,the
database is shut down cleanly and its
resources are freed after the last
user exits. The database automatically
reopens when a user tries to use the
database again.

如果您托管数百个很少使用的数据库,那么AUTO_CLOSE正是您要查找的.

猜你在找的MsSQL相关文章