以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [总结分享]sqlBulkCopy批量插入大量数据到Sql数据库 (批量导入、快速导入、1秒1w行、快速Excel导入)  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=147288)

--  作者:chen37280600
--  发布时间:2020/3/13 11:56:00
--  [总结分享]sqlBulkCopy批量插入大量数据到Sql数据库 (批量导入、快速导入、1秒1w行、快速Excel导入)

(快速浏览杰哥分享过的所有经验汇总,点击跳转


在论坛看到有人问这个sqlBulkCopy,就试一下,顺便总结一下使用sqlBulkCopy批量插入数据。这个只能插入不能修改
插上1w行以上级别时,特别好用。

以下代码,适合于把本地表,大量插入到数据库的同一个表。
如果不是同一个表的导入,推荐你自己看懂代码,稍微修改

Dim dt As DataTable = DataTables("UpdateLog") \'修改为你的表
Dim conStr As String = "server=xxx,1433;uid=xxx;pwd=xxx;database=MH1WebDB" \'改为自己数据库的连接字符串,注意跟狐表的数据库字符串不同,不能拿来用

Dim tran As System.Data.SqlClient.SqlTransaction
Dim conn As new System.Data.SqlClient.SqlConnection(conStr)

以下内容只有回复后才可以浏览

注意事项:
1.原始表和目标表,要求表结构完全一样,为了防止掉坑,我推荐直接用SqlCommand对着目标表,查询一个空白的临时结构表出来,然后利用这个结构表addnew,然后插入数据库,最后扔掉这个临时表
这种做法,就能在BS开发里,进入异步进行大量插入。一般批量插入都是耗时的,都是开异步,开异步就不能利用主线程的表,得用我这个思路

2.数据量越多越体现优势,在0.5-3万时没什么感觉,在10-100万行时,基本能得到1秒1w+行的速度

3.导入速度,软件层会受 主键/索引/触发器/外键 等影响,硬件层会受 网络带宽 / 服务器I/O / 服务器硬盘读取/写入等影响,所以每个人效果都不同,自行测试


此主题相关图片如下:1.png
按此在新窗口浏览图片


此主题相关图片如下:2.png
按此在新窗口浏览图片


此主题相关图片如下:3.png
按此在新窗口浏览图片


===============================================================
顺便总结以前分享过的帖子,方便大家学习

联系QQ:2385350359

免费产品:

经验分享:




















[此贴子已经被作者于2024/6/5 18:09:59编辑过]

--  作者:zhy400137
--  发布时间:2020/3/13 12:15:00
--  
学习
--  作者:Hopenight
--  发布时间:2020/3/13 12:23:00
--  
学习
--  作者:haotinghua
--  发布时间:2020/3/13 12:41:00
--  
看看
--  作者:李孝春
--  发布时间:2020/3/13 12:50:00
--  学习
学习
--  作者:一丁
--  发布时间:2020/3/13 12:51:00
--  
来学习
--  作者:baicaocao
--  发布时间:2020/3/13 13:00:00
--  
 学习
--  作者:rogen
--  发布时间:2020/3/27 10:22:00
--  
学习

--  作者:蓝才文百
--  发布时间:2020/3/27 10:23:00
--  
学习
--  作者:xxfoxtable
--  发布时间:2020/3/27 11:09:00
--  
 加精