sql-server – 如何强制SQL Server释放内存?
我一直在诉诸于memory_utilization_百分比,但运行以下内容后,似乎并没有改变内存. SELECT [Memory_usedby_Sqlserver_MB] = ( physical_memory_in_use_kb / 1024 ),[Memory_utilization_percentage] = memory_utilization_percentage FROM sys.dm_os_process_memory; DBCC FREESYSTEMCACHE ('ALL') DBCC FREESESSIONCACHE DBCC FREEPROCCACHE SELECT [Memory_usedby_Sqlserver_MB] = ( physical_memory_in_use_kb / 1024 ),[Memory_utilization_percentage] = memory_utilization_percentage FROM sys.dm_os_process_memory; 解决方案是删除SQL Server的最大服务器内存,并再次增加它,以强制SQL Server释放未使用但已分配的内存.但是,这种方法的一个问题是,我们无法确定减少最大服务器内存的距离,因此可能会导致杀死SQL Server的风险.这就是为什么在减少最大服务器内存的值之前了解SQL Server实际使用的原因很重要. 解决方法SQL Server始终假定它是运行的主要应用程序.它不是为了共享资源而设计的.它将始终占用所有可用的内存,它将只释放它的操作系统,除非你用“最大服务器内存”来限制.通过设计,Sql Server不能与其他人一起玩. 这个sqlskills文章建议扼制基准,然后根据需要监控和提高油门: https://www.sqlskills.com/blogs/jonathan/how-much-memory-does-my-sql-server-actually-need/ (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |