sql server 在查询大数据量的数据时,总会占用大量的内存,并且居高不下,一不小心就会死机。
下面这个是我从网上找到的:
当你查询数据的数据量比较大时,sqlserver会把查询结果缓存在内存中,保证你下次查询同样的记录时会很快得到结果,所以内存使用量会激增。
在你完成此次查询后,sqlserver不会马上释放内存,数据会仍然放在内存中,这是sqlserver的优化策略,sqlserver会不断地占用你的系统内存,来加快sqlserver的运行速度,当你的系统中的其它服务也需要内存时,它才会自动释放部分内存。一句话,sqlserver不会让你的系统有闲置的内存,除非你设置sqlserver的最大内存使用量。这样也没什么不好,如果你的系统很大,单独给sqlserver一台机器,这样会提高它的性能。
如果你只是开发用,要想让sqlserver释放内存,重启sqlserver的服务就行了。如果不想让sqlserver占用太多内存,设置sqlserver的最大内存占用量.
我设置了最大内存后,确实是得到了效果,但是sql server总是处在最大内存状态,难道就没有办法自己释放掉吗?
我用的是sql server 2000,不知道2005还有没有这个问题?
请教各位了!!
相关文章
- pg数据库使用delete语句删除数据的时候,如何将索引所占用的空间也释放掉
- 释放SQL Server占用的内存
- java应用的为啥内存占用率为啥会升高?如何实时监测?
- Linux和Windows操作系统在腾讯云幻兽帕鲁服务器上的内存占用情况如何?
- 如何释放sqlservr.exe所占用的内存? - lizhiwen
- Final Cut Pro资源库占用内存太大如何释放磁盘空间?
- Linux的虚拟内存管理-如何分配和释放内存,以提高服务器在高并发情况下的性能,从而降低了系统的负载
- docker容器内存占用 之 系统cache,docker下java的内存该如何配置
- .NET可用内存使用(如何防止OS的内存/释放内存)
- Lua中释放table占用内存的方法