大容量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
猜你喜欢
- flash param参数和属性下列标记属性和参数描述了由“发布”命令创建的 HTML 代码。在编写自己的用于显示 Flash 内容的 HT
- 本文是将yolo3目标检测框架训练出来的ckpt文件固化成pb文件,主要利用了GitHub上的该项目。为什么要最终生成pb文件呢?简单来说就
- 你知道世界上有多少种浏览器吗?除了我们熟知的IE, Firefox, Opera, Safari四大浏览器之外,世界上还有近百种浏览器。几天
- 本文利用python opencv进行图像的边缘检测,一般要经过如下几个步骤:1、去噪如cv2.GaussianBlur()等函数;2、计算
- 今天学习Python的时候,需要安装一个第三方库,Python Imaging Library,是Python下面一个非常强大的处理图像的工
- 列表是最常用的Python数据类型,它可以作为一个方括号内的逗号分隔值出现。列表的数据项可以是不同的类型,可以是字符串,可以是数字类型,甚至
- js判断某个字符出现的次数的简单实例function patch(re,s){ //参数1正则式,参数2字符串re=eval_r("
- 一、我们对XML的读取进行一波演示import xml.dom.minidom#负责解析xml文件的包from xml.dom.minido
- 本节内容1、文件常用操作汇总2、打开文件3、操作文件4、关闭文件一、文件常用操作汇总二、打开文件1、普通打开模式r,英文:read,只读模式
- 类的特殊成员之call#!/usr/bin/env python# _*_coding:utf-8 _*_class SpecialMemb
- torch.flatten(x)等于torch.flatten(x,0)默认将张量拉成一维的向量,也就是说从第一维开始平坦化,t
- 代码已经调通,跑出来的效果如下:# coding=gbkimport torchimport matplotlib.pyplot as pl
- 下面是完整代码://记录搜索引擎爬行记录 $searchbot = get_naps_bot(); if ($searchbot) { $t
- openpyxlopenpyxl是⼀个Python库,用于读取/写⼊Excel 2010 xlsx / xlsm / xltx / xltm
- 一):视图的定义视图是由基于一个或多个表的一个查询所定义的虚拟表,它将查询的具体定义保存起来,视图不包含任何数据。视图在操作上和数据表没有什
- 这个功能需要写一点代码来实现。下面的函数可以得到一个变量的类型,调用时传递一个变量进去,会返回用字符串形式描述的变量类型。//得到x的类型,
- 先吐槽一下opencv 3.1.0的版本cv2.sift和surf就不能用了 看解释是说 什么 "non-free",,
- 假设,你现在维护一个支持邮箱登录的系统,用户表是这么定义的:create table SUser( ID bigint unsig
- 前言Go语言中,协程创建和启动非常简单,但是如何才能正确关闭协程呢,和开车一样,前进总是很容易,但是如何正确的把车停在指定的地方总是不容易的
- Python使用pandas导入xlsx格式的excel文件内容1. 基本导入在 Python中使用pandas导入.xlsx文件的方法是r