WCF 百万级数据获取 并发量达到3个,CPU就突然飙到80以上,然后程序超时,有高手告知一下可能原因和相关的分析方案吗

博主使用WCF与EF+LINQ获取百万级数据并生成Excel,单次或少量并发无问题,但并发量达3个时,CPU升至80%以上导致程序超时。主要问题出在`data = exportList.ToList();`这行代码,寻求分析和优化建议。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1 楼主用WCF做的是一个获取数据,生成excel文件的服务.大致的思路就是用EF结合LINQ获取数据,然后生成excel。

2 数据量小的时候代码运行没有问题

3 只有一个或者两个请求百万级数据,程序运行没有问题

4 但是当并发数达到3个以后,而且请求的也是百万级数据的时候,CPU占用就超过80了,并发数两个的时候都没有到30,这CPU飙升速度太异常了。下面是获取数据的主要代码

 var exportList = from dataMain in dataList
                  join fina in finaNonameList on dataMain.FnId equals fina.Id into aa
                  from a in aa.DefaultIfEmpty()
                  join dep in _depList on dataMain.DeptId equals dep.Id into bb
                  from b in bb.DefaultIfEmpty()
                  join pub1 in pubList1 on dataMain.BusTypeId.ToString() equals pub1.Value 
                  into cc
                  from c in cc.DefaultIfEmpty()
                  join pub2 in pubList2 on dataMain.OpeBusinessesId.ToString() equals 
                  pub2.Value into dd
                  from d in dd.DefaultIfEmpty()
                  orderby dataMain.Id descending
       
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值