IIS WebService 内存溢出问题的修改过程

最近之前开发的数据同步定时服务经常出现服务停止的情况,根据系统日志,最终定位为IIS上的webservice抛出System.outOfMemory异常,也就是内存溢出的异常。于是,对该问题进行各种尝试性修复。主要收获到了以下几点:

1、IIS内存限制

IIS默认为当内存达到物理内存的60%进行回收,因此当站点运行占用内存达到60%时,会产生内存溢出的错误。

2、在进行数据查询的时候,要考虑数据量的问题。

进行数据同步,主要是从数据源查询数据,写入到另外一个数据库。开始只是进行了时间限制。但是往往会存在可能会同步大量数据的情况或者同一服务同步大量类别数据的情况,如果不进行限制,自然就会占用大量的内存,引起内存溢出的异常。

所以在查询时,要使用分页,这样无论需要同步数据量多少,都不会占用非常大的内存了。

3、ORACLE分页的问题。

在修改过程中开始使用 

SELECT xx.* FROM

SELECT t.*,row_number() over(ORDER BY o_id)AS num FROM t_order t 

)xx 

WHERE num BETWEEN 0 AND 500

这种语句进行分页,但是在运行过程中会出现丢失数据的问题。发现这种排序分页,并不是按照排序字段进行分页的。

具体的原因还未找到,于是使用了

SELECT xx.* FROM

select rownum as rownumber, t_order .* from
                                (SELECT * FROM t_order t_order 

)xx 

WHERE num BETWEEN 0 AND 500

的语句进行排序和分页。

目前运行未发现数据丢失。之前的情况为何会出现丢失的情况,过后再查找。



目前来看,暂时未出现内存溢出异常和数据丢失的情况,过后再观察看看吧。暂时记录,留备以后使用。


知行办公,专业移动办公平台 https://zx.naton.cn/
【总监】十二春秋之,3483099@qq.com;
【Master】zelo,616701261@qq.com;
【运营】狼行天下,897221533@qq.com;
【产品设计】流浪猫,364994559@qq.com;
【体验设计】兜兜,2435632247@qq.com;
iOS】淘码小工,492395860@qq.com;iMcG33K,imcg33k@gmail.com;
Android】人猿居士,1059604515@qq.com;思路的顿悟,1217022114@qq.com;
【java】首席工程师MR_W,feixue300@qq.com;
【测试】土镜问道,847071279@qq.com;
【数据】喜乐多,42151960@qq.com;
【安全】保密,你懂的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值