针对插入大文件到sqlserver数据库的方法优化:
MSSM自带导入工具,但是导入平面文件时速度极慢,且容易超时报错
使用bulk insert 可以对大文件进行快速导入;
示例代码:
--创建表
create table [2020].[dbo].[TEST_STUDY]
( "BUKRS" VARCHAR(50),
"HKONT" VARCHAR(50),
"BELNR" VARCHAR(100),
"BUDAT" VARCHAR(50),
"SHKZG" VARCHAR(10),
"DMBTR" FLOAT,
"WWA09" VARCHAR(50),
"PRCTR" VARCHAR(50),
"XNEGP" VARCHAR(50),
"TEXT100" VARCHAR(300))
--执行bulk insert
bulk insert [2020].[dbo].[TEST_STUDY]
from 'F:\测试文件.csv'
with (fieldterminator=',',firstrow=2,lastrow=4) ----分隔符为逗号,默认从第一行开始插入,本测试数据带列名,因此跳过列名,从第二行开始,lastrow可设置行数,此处只导入三行数据先测试效果,测试成功之后删掉此参数;
--测试500M csv/txt 文件 导入速度10秒;
--测试1.7G 文件 合计6937660 rows affected 38秒
使用sqlserver自带导数工具,测试时间>20分钟,刷新页面后超时报错