Foxtable(狐表)用户栏目专家坐堂 → sqlcommand插入数据过慢


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

主题:sqlcommand插入数据过慢

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


加好友 发短信
等级:五尾狐 帖子:1030 积分:8973 威望:0 精华:0 注册:2015/8/12 16:28:00
sqlcommand插入数据过慢  发帖心情 Post By:2020/6/12 15:48:00 [只看该作者]

如下代码,大约18000行数据,太慢了。有没有办法加速?

DataTables("MMS080").SQLDeleteFor("")


Dim cmd As new SQLCommand
cmd.C
cmd.CommandText = "Insert Into MMS080 (itemnumber, quantity, ordernumber,status) Values(?,?,?,?)"


For Each dt As Row In Tables("tempmms080").Rows ''''历遍open mo
   If CInt(dt.Index/1200) = dt.Index/1200 Then
                Vars("loadingtext") ="请等待: " & math.Ceiling(100*dt.Index/Tables("tempmms080").Rows.count) & "%"
            End If   这一段大约等了30几秒。从0%一直到100%

    cmd.Parameters.Clear
    cmd.Parameters.Add("@itemnumber",dt("Item number"))
    cmd.Parameters.Add("@quantity",dt("Transaction quantity"))
    cmd.Parameters.Add("@ordernumber",dt("Order number"))
    cmd.Parameters.Add("@status",dt("Status"))
    cmd.ExecuteNonQuery

Next

th2.start()

DataTables("MMS080").load
Tables("MMS080").ResumeRedraw
DataTables.delete("tempmms080")
Return Nothing
[此贴子已经被作者于2020/6/12 15:49:03编辑过]

 回到顶部
帅哥,在线噢!
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110582 积分:562806 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/6/12 16:06:00 [只看该作者]

1、如果是SqlServer,参考:http://foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=147288&skin=0

2、access可以尝试加上事务:http://www.foxtable.com/webhelp/topics/3312.htm

另外去掉在循环里显示进度的用法,这种本身就严重影响效率

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


加好友 发短信
等级:五尾狐 帖子:1030 积分:8973 威望:0 精华:0 注册:2015/8/12 16:28:00
  发帖心情 Post By:2020/6/12 16:08:00 [只看该作者]

sqlserver的那个连接失效了。

 回到顶部
帅哥,在线噢!
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110582 积分:562806 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/6/12 16:12:00 [只看该作者]

我打开没有问题。或者论坛里自己搜“sqlBulkCopy

 回到顶部