我从数据库中取100W (大概800M左右)数据,服务器的内存可用量有6G多,他就报内存溢出,
我知道分批次取就不会出现这种问题了,我想问的是如何在不分批次的情况下,一次取这么多数据,不让他报内存溢出这个错误呢? 我在网上看到说配置 machine.config ,我配置了也不行,可能是我配置的 不正确吧 ,
<system.web> <processModel autoConfig="true" timeout="Infinite" idleTimeout="Infinite" requestLimit="Infinite" requestQueueLimit="5000" restartQueueLimit="10" memoryLimit="80" webGarden="false" cpuMask="0xffffffff" userName="System" password="autogenerate" logLevel="Errors" clientConnectedCheck="00:00:05" comAuthenticationLevel="Default" comImpersonationLevel="Default" responseDeadlockInterval="00:03:00" responseRestartDeadlockInterval="00:09:00" maxWorkerThreads="25" maxIoThreads="25" serverErrorMessageFile="" pingFrequency="00:02:30" pingTimeout="00:00:20" />
是否包含递归,或者是游标,或者循环,是否释放,
数据量50W的时候 就没问题, 就一个单表查询 ,我取100W数据 放在了一个DaTaTable 中
@终将成为码奴的愤青: 100W数据进入Datatable,已经是峰值了吧,我做最多也就10000条
你看看 iis 的应用程序池 的上限是多少?
我的是控制台应用程序 ,与iis 应用程序池 有关系吗
@终将成为码奴的愤青: 没有关系 不过应该有相关设置内存的位置 不过控制台应用程序我不熟 也没办反帮你了
使用DataReader。用完就扔掉~
我试试,看有用没 ,稍后 回答你
最简单的办法是给服务器多插几条内存条
想什么呢.肯定是要分页啊..
服务器 可用 内存 有6个多G, 远远没有达到 峰值呢,肯定不是内存条不够的原因啊
不是那个内存哦,是运行内存