sql server 内存知识

SQL Server对服务器内存的使用策略是用多少内存就占多少内存,只有在服务器内存不足时,才会释放一点占用的内存,至于释放多少,完全由sql server控制,所以SQL Server 服务器内存往往会占用很高。

SQL Server提供数据库脚本查徇内存占用情况

DBCC MemoryStatus

sql server 内存知识_第1张图片

这些内存一般都是Sql Server运行时候用作缓存的:

  1. 数据缓存:执行查询语句,Sql Server会将相关的数据内容(Sql Server操作的数据都是以页为单位的,在SQL Server中页的大小始终是8kb的大小,页有不同的类型:数据页,索引页,系统页等等)加载到内存中进行缓存,以便于再次请求此页的数据的时候,直接从内存返回,大大提高了提取效率。

  2. 执行命令缓存:在执行存储过程,自定函数时,Sql Server需要先二进制编译再运行,编译后的结果也会缓存起来,再次调用时就无需再次编译。

其它DBCC管理命令

DBCC FREEPROCCACHE 清除存储过程相关的缓存
DBCC REESESSIONCACHE 会话缓存
DBCC FREESYSTEMCACHE(‘All’) 系统缓存
DBCC DROPCLEANBUFFERS 所有缓存

以上命令虽然会清除掉现有缓存,为新的缓存腾出空间,但是Sql server并不会因此释放掉已经占用的内存。Sql Server并没有提供任何命令允许我们释放不用到的内存。因此我们只能通过动态调整Sql Server可用的物理内存设置来强迫它释放内存。

按以上步骤,设置sql占用内存的上限,就会让sql server在内存上限范围内,主动清除脏数据替换成热数据,不至少向吸血鬼一样,无休止占用内在。

sql server windows nt 64bit 占内存解决方法:
1、限制Sql Server可用的物理内存设置步骤:
sql server 内存知识_第2张图片
2、找到你本地服务。
找到SQL Server (MSSSQLSERVER)
sql server 内存知识_第3张图片
右键重新启动。

你可能感兴趣的:(数据库,数据库,sql,sqlserver)