关于DataSet 数据过大
Database db = DatabaseFactory.CreateDatabase();
DbCommand cmd = db.GetStoredProcCommand("froExcel");
db.AddInParameter(cmd, "@condition", DbType.String, condition);
DataSet Ds = db.ExecuteDataSet(cmd);
数据库中直接执行存储过程"froExcel" 耗时在几十秒。数据为51列,20W行。
但是程序在设断点的时候
DataSet Ds = db.ExecuteDataSet(cmd)
执行到该句的时候 要等待很长很长时间。
1W多的数据 都要等待2分钟
5W多的数据 要等 近十分钟
20W 的话等了 好久好久也没有最终的结果。
最终获取到DataSet 是为了进行导出Excel的,其它代码都已经准备好,就是DataSet Ds = db.ExecuteDataSet(cmd)这里等待不回来结果。
不只到各位大神有什么办法,或者是有什么东西代替DataSet
------解决方案--------------------DataReader 填充 DataTable
------解决方案--------------------
这样用还不如直接返回DataTable
------解决方案--------------------对存储过程实行分页,用哪个调哪个
http://wenku.baidu.com/view/78b778e9998fcc22bcd10d9d.html
------解决方案--------------------
支持,学习
------解决方案--------------------缓存DATASET!
------解决方案--------------------提醒LZ一点Excel一个工作表最大支持65536行。
------解决方案--------------------
取数据建议按需取,别全加载。
------解决方案--------------------这个确实很烦人,导出的数据很多,DataTable效率很低。很容易死掉。
我遇到的问题更奇怪,遍历 DataTable 拼接 <table>的时候居然告诉我,连接超时,明明DataTable是关闭连接的。
最后只好告诉客户,分批导出吧。(幸好客户比较好说话)。
ps:拼接<table>比使用控件绑定,能够稍微快一点。