SqlServer物理内存及虚拟内存设置的总结

时间:2024-03-10 14:41:37

  手头的书籍+搜索+经验+打字=下面的总结,希望对大家有用。

  在物理内存很小且很昂贵的年代,引入了虚拟内存的技术。首先,它是一种技术,计算机系统中进程可以通过访问大小和寻址与系统中物理内存无关的内存。

  1.SqlServer的物理内存限制可限制缓冲区高速缓存和过程缓存,虚拟内存限制可限制连接内存。

  (缓冲区高速缓存用于存储从数据库磁盘文件读入其中的数据页或索引页,并将修改后的页写回磁盘。缓冲区缓存中会保留一页,直到缓冲区管理器需要该缓冲区读入更多数据。数据只有在被修改后才重新写入磁盘。在将缓冲区高速缓存中的数据写回磁盘之前,可对其进行多次修改

  过程缓存是SQL Server 内存缓冲池的一部分,用于存储T-SQL批处理、存储过程和触发器的执行计划。)

  2.32位系统中由于虚拟内存的寻址空间限制为4GB,虽然有了PAE和AWE能使用超过4GB的内存了,但是这些内存只能用于缓冲区高速缓存,不可用于连接内存和过程缓存。

  3.当用户数在4000到5000时(一般情况,当然这还是取决于用户在做什么),这时SQL Server会话会产生连接问题,这是虚拟内存的问题。

  4.内存设置的经验值:一般的数据库,建议将缓冲区高速缓存大小设置为数据库大小的20%,比如一个50G的数据库,为SQL Server分配的内存是10G。当然,如果数据库很大甚至到达TB级的话应该分配为数据库大小的5%到10%左右。

  5.在64位SQL Server中可能大家觉得启用\'激活awe标志\'没有什么用了,因为没有4G的限制了。其实还是有用的,启用\'激活awe标志\'可以保证为SQL Server分配的内存不可切换,早期SQL Server版本中参数\'设置工作集大小\'指示SQL Server内存不可切换,现在这个标志已经取消。

  6.不能让SQL Server使用太多的内存,可能导致Windows中的分页问题,要为操作系统留1G到2G的内存。

  7. 缓冲区高速缓存能解决一些I/O问题,但是不会消除所有的I/O问题!