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


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

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

帅哥哟,离线,有人找我吗?
santde
  11楼 | 信息 | 搜索 | 邮箱 | 主页 | 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编辑过]

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


加好友 发短信
等级:七尾狐 帖子:1731 积分:11255 威望:0 精华:0 注册:2011/12/15 22:06:00
  发帖心情 Post By:2016/4/28 17:47:00 [只看该作者]

以下是引用santde在2016/4/28 17:37:00的发言:

你是用的FT?
肯定是啊,没想通你为什么这么慢。
不过我很少要用到一次保存几万行的数据。如果确实慢,你可以考虑分批导入保存。
还要你可以去试试bulkCopy这个方法,几十万甚至上百万,也只要几十秒


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


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

谢谢 回复

bulkCopy 这个方法如何使用呢

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


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

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

 回到顶部
帅哥哟,离线,有人找我吗?
santde
  14楼 | 信息 | 搜索 | 邮箱 | 主页 | 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编辑过]

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/4/28 19:36:00 [只看该作者]

以下是引用santde在2016/4/28 18:20:00的发言:


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

 

类似于你合并生成一段的sql语句,执行无数句insert、update语句而已。


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


加好友 发短信
等级:童狐 帖子:282 积分:2159 威望:0 精华:0 注册:2014/9/12 16:35:00
  发帖心情 Post By:2016/4/28 20:19:00 [只看该作者]

 严重关注

 回到顶部
总数 16 上一页 1 2