以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  SaveExcel导出效率太低?  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=19119)

--  作者:reachtone
--  发布时间:2012/4/27 18:50:00
--  SaveExcel导出效率太低?

以前只重视大容量数据的汇总统计效率,很少关注导出问题。

因为最近一个客户的“变态”测试,发现SaveExcel的数据导出效率不是一般的差!

请看例子:6.5万条数据,用sql语句导出到Excel只要2-3秒,用Table的SaveExcel方法竟然要接近10分钟!

 

 下载信息  [文件大小:   下载次数: ]
点击浏览该文件:管理项目29.rar

[此贴子已经被作者于2012-4-27 20:50:25编辑过]

--  作者:mr725
--  发布时间:2012/4/27 19:20:00
--  

SaveExcel是慢死了,下面这样很快,我五年前单核的老机子用8.5秒::

 

Dim q As new OuterTableBuilder
q.TableName = "test1"
q.C
q.SelectString = "Select * From {成绩表} "
q.Build

 

Dim ex As New Exporter
ex.SourceTableName = "test1"
ex.FilePath = "d:\\testtt1.xls"
ex.Format = "Excel"
ex.Export()


--  作者:baoxyang
--  发布时间:2012/4/27 19:57:00
--  

没有测试过大数据,如果所楼主所讲,这个功能使用还是较多,望老大需要改进呀!


--  作者:狐狸爸爸
--  发布时间:2012/4/27 20:36:00
--  
用2楼的方法
--  作者:reachtone
--  发布时间:2012/4/27 20:41:00
--  
以下是引用狐狸爸爸在2012-4-27 20:36:00的发言:
用2楼的方法

呵呵,既然这样快,老大何不改进一下?省的绕一圈了!


--  作者:baoxyang
--  发布时间:2012/4/27 20:45:00
--  
建议优化下,好多处需要更改.
--  作者:reachtone
--  发布时间:2012/4/27 20:49:00
--  

2楼的方法确实是快多了,但仍比直接执行sql语句慢。

经再次测试,菜单中的“高速导出”非常快,效率高,但菜单中的“导出Excel”还是慢如蜗牛,跟SaveExcel一样。

建议老大改下,尤其是SaveExcel很常用的。


--  作者:reachtone
--  发布时间:2012/4/27 20:59:00
--  

Exporter确实比SaveExcel效率高N倍,可惜不支持外部数据源。

如果能指定外部数据源,随便多少条的数据,根本就不需要加载而直接导出了!


--  作者:狐狸爸爸
--  发布时间:2012/4/27 21:08:00
--  

这个没办法的,根本就不是我写的,还有一个方法:

http://www.foxtable.com/help/topics/1148.htm

 


--  作者:reachtone
--  发布时间:2012/4/27 21:32:00
--  
以下是引用狐狸爸爸在2012-4-27 21:08:00的发言:

这个没办法的,根本就不是我写的,还有一个方法:

http://www.foxtable.com/help/topics/1148.htm

 

这个试过,跟SaveExcel差不多,效率很低。

还是Exporter靠谱,跟直接用sql语句导出效率一样(2楼的代码,只用第二段就可以了,第一段多余,呵呵)

对于数据量很小而且需要包含导出格式的,就用SaveExcel;大量的数据导出,必须用Exporter!