加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

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

发布时间:2020-12-12 16:13:03 所属栏目:MsSql教程 来源:网络整理
导读:我们有一个SQL Server与几百个数据库.该服务器上的许多数据库每周仅使用几次.我们有一个问题,SQL Server有时变得非常慢.当发生这种情况时,内存使用率指示为99%,并发生分页.为了解决这个问题,我们每天晚上安排重新启动SQL服务,以卸载所有这些数据库并释放内存
我们有一个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正是您要查找的.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读