数据库虽然会尽可能多的占用内存,但并不意味增加内存就一定是越多越好,就如同上文说的,如果数据库的内存长期没有什么压力,增加内存也不会带来��能的提升。
另外,在32位 的SQL server中,在数据库启动时就为连接、查询计划、第三方dll、链接服务器等分配了固定大小的multi-page(上文在介绍AWE时已有介绍),因为multi-page的大小不会随着内存的增加而改变,所以即使增加内存,也无益于这些功能、组件,而只是为增大了数据缓存。
备注:在64位的SQL server中,multi-page的大小没有限制。
误区八:如果其他应用程序也需要内存,SQL server会释放一部分自己的内存,以保证其他应用程序能够正常运行。SQL Server不会为其他程序释放自己以占用的内存,只有在操作系统遇到内存压力时,才会根据操作系统的要求减少自己的内存占用量。
但如果SQL server启用了锁定内存页的,那即使是操作系统有要求,其内存也不会释放。因为锁定内存页会使SQL server占用的内存长久保留在物理内存中,避免被分页到虚拟内存中去,这是提升SQL server性能的常见做法。在SQL Server的推荐配置中,我们经常建议客户这样做。不够为了避免内存占用太大,可以通过设置最大内存来限定内存的使用上限。