千家信息网

大容量csv快速内导入sqlserver的解决方法是什么

发表于:2024-09-24 作者:千家信息网编辑
千家信息网最后更新 2024年09月24日,这篇文章将为大家详细讲解有关大容量csv快速内导入sqlserver的解决方法是什么,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。前言在论坛中回答了一
千家信息网最后更新 2024年09月24日大容量csv快速内导入sqlserver的解决方法是什么

这篇文章将为大家详细讲解有关大容量csv快速内导入sqlserver的解决方法是什么,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

前言

在论坛中回答了一个问题,导入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的解决方法是什么就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

数据 大容量 方法 大容 文件 消息 源头 状态 级别 问题 内容 换行符 接口 文章 更多 服务器 知识 程序 篇文章 语句 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 气象局网络安全问题 采购销售管理系统数据库设计 sql删除指定数据库某行语句 缘通网络技术 腾信创新网络技术有限公司 解决数据库并发问题 mysql数据库关联数组 关于网络安全手抄报图片 英语小作文网络博客网络安全 spc数据库配置 梁溪区信息软件开发诚信合作 医药研发专利数据库 中方网络安全演习 吉林省内高校网络安全专业 java服务器文件 昆明冶金计算机网络技术 传奇手游服务器怎么卖 移动应用软件开发电脑推荐 闸机服务器架构拓扑图 计算机辅助调查系统形成数据库 财付通网络技术有限公司是什么 视觉现在都用什么软件开发 网络技术要高考多少分才可以学 奉化游戏软件开发周期 sql数据库连接查询超时 地下城的服务器什么时候更新 统计专业数据库应用课难学吗 数据库连接工具查看表索引 关于网络安全的对偶句 美国高度发达科技互联网
0