SQL Server 内存占用高分析及解决办法
当前位置:点晴教程→知识管理交流
→『 技术文档交流 』
一、问题1.1、SQL Server内存占用高 ,内存不释放 1.2、SQL Server 内存使用策略SQL Server对服务器内存的使用策略是有多少占多少(大约到剩余内存为4M左右)只用在服务器内存不足时, 才会释放一点占用的内存,所以很多时候,我们会发现运行SQL Server的系统内存往往居高不下这些内存一般都 是SQL Server运行时候用作缓存的。 数据缓存: 例如:你运行一个select语句,那么SQL Server会将相关的数据页(SQL Server操作的数据都是以页为单位的,在 SQL Server中页的大小始终是8kb的大小,页有不同的类型:数据页,索引页,系统页等等)加载到内存中进行 缓存,以便于再次请求此页的数据的时候,直接从内存返回,就无需读取磁盘了,大大提高了速度。 执行命令缓存: 如执行存储过程,自定函数时,SQL Server 需要先二进制编译再运行,编译后的结果也会缓存起来,再次调用时就无需再次编译。 二、解决办法当我们知道SQL Server 内存占用方式,就有以下两种解决办法
结果集部分重要指标解释(请注意, 1、Total Server Memory (KB)
2、Target Server Memory (KB)
3、Memory Grants Outstanding
4、Page Life Expectancy (PLE)
5、Available Physical Memory (KB)
6、Available Paging File (KB)
7、Percent of Committed Memory in WS
8、System Physical Memory Low
9、Page Faults
10、Memory Grants Pending
11、Lock Pages in Memory Usage (KB)
12、Large Pages Allocated (KB)
这些关键指标提供了关于SQL Server内存使用情况的全面视图,并且对于诊断性能问题非常有价值。通过定期监控这些指标,可以及时发现潜在的问题,并采取适当的措施来优化SQL Server的性能。此外,结合动态管理视图(DMVs),如 缓存清除命令
以上命令虽然会清除掉现有缓存,为新的缓存腾出空间,但是Sql server并不会因此释放掉已经占用的内存。Sql Server并没有提供任何命令允许我们释放不用到的内存。因此我们只能通过动态调整Sql Server可用的物理内存设 置来强迫它释放内存。 如果想让 Sql Server 主动释放 占用并空闲的内存空间,可以设置Sql Server占用内存的上限,就会让Sql server在 内存上限范围内,主动清除脏数据替换成热数据。因此还得如下操作 三、设置内存最大占用值设置方式: 从自带的studio 连接,,在数据库服务器名称上点击【右键】,选择【属性】,然后,找到【内存】选项,在右边的【使用AWE分配内存】(sqlServer64的应该不用勾)左边把对勾打上。在最大服务器内存(MB)上填入适当的大小(具体填多大,肯定不能超过计算机的物理内存,建议控制在60%-75%),设置成功后重启 四、 其他结果集图片:执行 DBCC MemoryStatus 转自https://www.cnblogs.com/blbl-blog/p/18676524 该文章在 2025/1/18 10:05:29 编辑过 |
关键字查询
相关文章
正在查询... |