大容量csv快速内导入sqlserver的解决方法(推荐)

作者:mrr 时间:2024-01-13 00:44:12 

前言

在论坛中回答了一个问题,导入csv 数据,并对导入的数据增加一个新的列date datetime。要求在10s内完成,200w行数据的导入.分享下解决问题的思路和方法

分析

通常来讲Bulk insert 比 BCP 更快一点,我们选择Bulk insert的方式。 提出的解决方案:先把数据导入到sql server 的临时表,然后再插入目标表。 具体语句如下:


bulk insert test07232 from 'D:\2017-7-22.csv' WITH ( FIELDTERMINATOR = ',', ROWTERMINATOR = '/n' )
SELECT * ,GETDATE() AS Date INTO ttt FROM test07232

但是他提供的的csv 进行导入时,提示如下错误

消息 4866,级别 16,状态 1,第 1 行 大容量加载失败。数据文件中第 1 行的第 2 列太长。请验证是否正确指定了字段终止符和行终止符。 消息 7399,级别 16,状态 1,第 1 行 链接服务器 "(null)" 的 OLE DB 访问接口 "BULK" 报错。提供程序未给出有关错误的任何信息。

消息 7330,级别 16,状态 2,第 1 行 无法从链接服务器 "(null)" 的 OLE DB 访问接口"BULK"提取行。

这是由于行终止符无法识别导致的。使用notepad++打开csv文件,在视图中选择显示行尾号。

可以看到文件的换行符是LF

而对于正常的csv问题 默认是用CRLF作为换行符的

因此上面的bulk insert 语句无法正常执行。

解决

1.首先想到的是修改数据源头,让源头产生正常的数据,但是源头数据不好修改 2.用程序,写c#处理,,太费时间 3.最后终于找到了正确的办法


bulk insert test07232 from 'D:\2017-7-22.csv' WITH ( FIELDTERMINATOR = ',', ROWTERMINATOR = '0x0a' )
SELECT * ,GETDATE() AS Date INTO ttt FROM test07232

最后全部都在SSD 上,导入用时2s。生产正式表1s 。整个过程3s完成。

总结

解决问题要从各个问题入手,找到原因才更好的解决问题

总结

以上所述是小编给大家介绍的大容量csv快速内导入sqlserver的解决方法网站的支持!

来源:http://www.2cto.com/database/201707/660707.html

标签:csv,sql
0
投稿

猜你喜欢

  • mysql查询字段类型为json时的两种查询方式

    2024-01-27 19:05:48
  • 基于JavaScript实现回到页面顶部动画代码

    2024-05-25 15:17:28
  • python购物车程序简单代码

    2021-02-15 23:11:46
  • python用faker库批量生成假数据

    2023-04-09 13:15:46
  • 教你用PyTorch部署模型的方法

    2023-07-23 17:52:30
  • js“树”读取xml数据源码

    2007-08-04 19:42:00
  • Python实现字典按照value进行排序的方法分析

    2022-11-03 04:27:27
  • 下一站:HandlerSocket!

    2011-04-11 09:02:00
  • 一篇文章彻底弄懂Python字符编码

    2021-06-06 18:51:33
  • python创建与遍历List二维列表的方法

    2023-04-29 13:07:48
  • Python实现绘制圣诞树和烟花的示例代码

    2022-03-22 16:22:20
  • Javascript的匿名函数

    2008-05-07 13:33:00
  • PHP PDOStatement::debugDumpParams讲解

    2023-06-06 04:18:55
  • MySQL8.0.21.0社区版安装教程(图文详解)

    2024-01-20 06:33:58
  • Python对文件和目录进行操作的方法(file对象/os/os.path/shutil 模块)

    2022-08-25 05:19:38
  • 说说tab设计

    2009-07-26 09:56:00
  • Python中的引用知识点总结

    2023-10-31 08:21:43
  • plt.title()中文无法显示的问题解决

    2023-07-24 06:05:33
  • Python通用验证码识别OCR库之ddddocr验证码识别

    2021-05-16 22:55:00
  • 一文教会你在sqlserver中创建表

    2024-01-17 11:42:57
  • asp之家 网络编程 m.aspxhome.com