我能想到的常见的和理论上的情况有下面几种:
1 假设同时有1000个人访问数据库,每人需要调用3M大小的数据,同时处理的数据量是3G,服务器只有2G内存。这种情况只是理论上,服务器数据库都有多线程阻塞技术,和事务处理逻辑,来保证数据处理的先后顺序,而不会是绝对的同时进行。不过一般的请求很少有超过50KB的,请求的数据量越大,同时连接的人数就越少,这是公认的数据库使用定律。
2 复杂的join语句,造成对多个大容量的表进行join *** 作。
3 数据库端过程函数编程。程序里面逻辑错误,数组分配不合理,或者陷入死循环,或者一次读出太多数据,然后一起处理。
1、1选择逗开始
>
所有程序
>
microsoft
sql
server
2008
r2
>
sql
server
management
studio地。系统显示逗连接到服务器地界面。
2、2输入各项数据,单击连接
3、3系统显示逗对象资源管理器地界面
4、4上图单击右键,在d出的快捷菜单中选择逗属性地。
5、5在左侧导航栏中选择逗内存地,将右侧逗最大服务器内存地的值设置为物理内存的60%,本例以8g内存为例
6、6最后单击确定,设置完成
因为SQL使用了缓存技术,所以在使用一段时间以后内存占用会越来越多。
打开企业管理器,在你的SQL服务器上点右键,查看属性。
在“内存”项中把内存的“最大值”改小一点,不要超过你的内存的一半,或者选中“使用固定的内存大小”,然后将值设定为你内存的一半也可以。
可以设定SQL Server的,内存占用。
具体的参看:>
我原先也为这个事情烦恼过,后来了解了sqlserver后就觉得这个根本不是问题,sqlserver大内存是为了提高查询速度而设计的,也就是同样一个sql语句,第一次查询的时候会增加内存开销,而第二次就直接从内存读了,所以第二次读的时候会比从硬盘读快很多 如果你觉得内存太大,并且超过了物理内存,那你完全可以设定sqlserver的内存最大值,不要让其超过系统内存就可以了,这样你的服务器开个几个月不重启问题都不大 我的服务器内存是2G,我指定sqlserver最大内存是1G,所以我的服务器内存永远在16G,上下幅度非常小,基本上几个月不重启一点问题都没有 当然程序很重要,如果程序的内存不释放,那也有可能内存爆满
以上就是关于一般什么情况下,数据库会大量占用内存导致最后的溢出情况全部的内容,包括:一般什么情况下,数据库会大量占用内存导致最后的溢出情况、sql数据库服务器,内存占用过大怎么办、为什么读取SQL的数据库会占用内存那么大等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)