Foxtable(狐表)用户栏目专家坐堂 → SaveExcel导出效率太低?


  共有10504人关注过本帖树形打印复制链接

主题:SaveExcel导出效率太低?

帅哥哟,离线,有人找我吗?
reachtone
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:版主 帖子:1993 积分:19409 威望:0 精华:20 注册:2008/9/2 10:09:00
SaveExcel导出效率太低?  发帖心情 Post By:2012/4/27 18:50:00 [只看该作者]

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

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

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

 

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

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

 回到顶部
帅哥哟,离线,有人找我吗?
mr725
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:5154 积分:31434 威望:0 精华:8 注册:2008/9/8 12:27:00
  发帖心情 Post By: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
  3楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐精 帖子:3313 积分:23146 威望:0 精华:1 注册:2009/3/31 11:25:00
  发帖心情 Post By:2012/4/27 19:57:00 [只看该作者]

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


 回到顶部
帅哥哟,离线,有人找我吗?
狐狸爸爸
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2012/4/27 20:36:00 [只看该作者]

用2楼的方法

 回到顶部
帅哥哟,离线,有人找我吗?
reachtone
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:版主 帖子:1993 积分:19409 威望:0 精华:20 注册:2008/9/2 10:09:00
  发帖心情 Post By:2012/4/27 20:41:00 [只看该作者]

以下是引用狐狸爸爸在2012-4-27 20:36:00的发言:
用2楼的方法

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


 回到顶部
帅哥哟,离线,有人找我吗?
baoxyang
  6楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐精 帖子:3313 积分:23146 威望:0 精华:1 注册:2009/3/31 11:25:00
  发帖心情 Post By:2012/4/27 20:45:00 [只看该作者]

建议优化下,好多处需要更改.

 回到顶部
帅哥哟,离线,有人找我吗?
reachtone
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:版主 帖子:1993 积分:19409 威望:0 精华:20 注册:2008/9/2 10:09:00
  发帖心情 Post By:2012/4/27 20:49:00 [只看该作者]

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

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

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


 回到顶部
帅哥哟,离线,有人找我吗?
reachtone
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:版主 帖子:1993 积分:19409 威望:0 精华:20 注册:2008/9/2 10:09:00
  发帖心情 Post By:2012/4/27 20:59:00 [只看该作者]

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

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


 回到顶部
帅哥哟,离线,有人找我吗?
狐狸爸爸
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2012/4/27 21:08:00 [只看该作者]

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

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

 


 回到顶部
帅哥哟,离线,有人找我吗?
reachtone
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:版主 帖子:1993 积分:19409 威望:0 精华:20 注册:2008/9/2 10:09:00
  发帖心情 Post By: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!


 回到顶部
总数 19 1 2 下一页