以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [总结分享]sqlBulkCopy批量插入大量数据到Sql数据库 (批量导入、快速导入、1秒1w行、快速Excel导入) (http://foxtable.net/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 / 服务器硬盘读取/写入等影响,所以每个人效果都不同,自行测试 [此贴子已经被作者于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 -- 加精 |