Foxtable(狐表)用户栏目专家坐堂 → 如何提高大批量数据保存速度


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

主题:如何提高大批量数据保存速度

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


加好友 发短信
等级:童狐 帖子:274 积分:2293 威望:0 精华:0 注册:2015/6/14 18:33:00
如何提高大批量数据保存速度  发帖心情 Post By:2016/4/28 14:55:00 [显示全部帖子]

数据保存软件对比测试报告:

FOXTABLE测试环境

操作电脑I7 4710HQ双核 WINDOWS7操作系统,无线联接公司局域网
服务器 DEL720服务器,16GB 内存 与测试电脑在同一个局域网  数据库SQL2005
测试数据 21253条 15列 (部份列无数据)
测试保存 耗时 282.5532秒


网络EXCEL平台测试环境
操作电脑I7 4710HQ双核 WINDOWS7操作系统,无线联接公司局域网  与FOXTABLE测试属于同一台电脑,同一个网络
服务器 DEL720服务器,16GB 内存 与测试电脑不在同一个局域网,距离20KM外的另一个公司  数据库SQL2008

测试数据 21253条 15列 (部份列无数据)与FOXTABLE测试采用完全相同的数据
测试保存 耗时 42.32813秒

说明:如果FOXTABLE也去操作外网 网络EXCEL平台所在服务器保存相同 的数据可能更耗时间,时间将远超过 282秒,时间不敢想象

这个也是有实例测试说明 

同样在我的笔记本上操作,通过FOXTABLE程序 向网络EXCEL平台所在服务器 上传数据,5301条数据,仅上传两个字段且均为数值型数据 耗时在100.6037542秒左右。数据库SQL2008 与网络EXCEL测试一个SQL服务器

大批量数据如何提高保存速度

[此贴子已经被作者于2016/4/28 18:58:53编辑过]

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


加好友 发短信
等级:童狐 帖子:274 积分:2293 威望:0 精华:0 注册:2015/6/14 18:33:00
  发帖心情 Post By:2016/4/28 16:29:00 [显示全部帖子]

以下是引用rjh4078在2016/4/28 16:22:00的发言:

已经习惯了  小系统搞搞算了


问题是想做些大点的系统怎么办,再选择别的软件?


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


加好友 发短信
等级:童狐 帖子:274 积分:2293 威望:0 精华:0 注册:2015/6/14 18:33:00
  发帖心情 Post By:2016/4/28 17:25:00 [显示全部帖子]

数据库是SQL2008或SQL2005

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


加好友 发短信
等级:童狐 帖子:274 积分:2293 威望:0 精华:0 注册:2015/6/14 18:33:00
  发帖心情 Post By:2016/4/28 17:37:00 [显示全部帖子]

以下是引用jspta在2016/4/28 17:29:00的发言:
检查下有没有其它代码影响,比如DataColChanging之类事件。

没有任何事件 ,新做项目测试用的 就一张表,无任何其它事件

我保存几万行代码,还要向数据库获取ID,也只要20秒。你这个确实慢了  你是用的FT?

同样在我的笔记本上操作,通过FOXTABLE程序 向网络EXCEL平台所在服务器 上传数据,5301条数据,仅上传两个字段且均为数值型数据 耗时在100.6037542秒左右。数据库SQL2008 与网络EXCEL测试一个SQL服务器  这个是用SQL生成表的方式提交的,这个不会有任何事件的吧。

[此贴子已经被作者于2016/4/28 17:44:48编辑过]

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


加好友 发短信
等级:童狐 帖子:274 积分:2293 威望:0 精华:0 注册:2015/6/14 18:33:00
  发帖心情 Post By:2016/4/28 18:15:00 [显示全部帖子]

谢谢 回复

bulkCopy 这个方法如何使用呢

比如 将系统中的临时 表 表名称为 订单临时表
要将其中的数据 使用bulkCopy 方法 弄到 数据源 “abcd"  中的 订单表  中如何写代码。就当 两表表结构一样。


一次保存2万来条 是不多见,但不是没有,本次主要是用来和其它的软件进行数据保存比较。

另与第三方系统集成使用是 经常进行几百条数据,几千条数据的存取是经常的事情

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


加好友 发短信
等级:童狐 帖子:274 积分:2293 威望:0 精华:0 注册:2015/6/14 18:33:00
  发帖心情 Post By:2016/4/28 18:20:00 [显示全部帖子]

Public Shared Function BulkCopy(ByVal ds As Object, ByVal DestinationTableName As String) As Boolean
        Dim rv As Boolean = False
        Dim myTrans As SqlTransaction = newTran()

        Dim bCopy As New SqlBulkCopy(myTrans.Connection, SqlBulkCopyOptions.CheckConstraints, myTrans)
        'bCopy.ColumnMappings("","")
        Try
            bCopy.WriteToServer(ds)
            myTrans.Commit()
            rv = True
        Catch ex As Exception
            myTrans.Rollback()
            MsgBox(ex.Message, MsgBoxStyle.Critical, "Error")
        Finally
            bCopy.Close()
            myTrans.Dispose()
        End Try
        Return rv
    End Function


在网上找到了这段代码如何在FOXTABLE中使用呢
[此贴子已经被作者于2016/4/28 18:20:07编辑过]

 回到顶部