批量数据入库

下面主要介绍数据库批量操作数据(主要是 Insert)的方法,涉及 SQL Server、DB2、MySQL 等。

SQL Server

首先,准备工作,新建一个数据库实例

在数据库实例中新建一张数据表

自认而然,最常用的是普通的 insert 方法,可以插入一条或多条数据

但是,在大数据量的情况下,普通的 insert 方法插入批量数据执行太慢。

参见:.NET批量大数据插入性能分析及比较

下面提供 2 种方法,提高批量数据插入效率:

1SqlBulkCopy

.Net 2.0 提供 SqlBulkCopy 对象能够一次性批量插入数据。

局限性

2表值参数

如(1)所述,SqlBulkCopy 对象能够将多条数据一次性传送给SQL Server,但是多条数据仍然无法一次性传给存储过程。

SQL Server 2008增加的新特性:表值参数(Table-Valued Parameter),可以将 DataTable 作为参数传递给存储过程。

局限性

  • 表值参数仅仅在插入数目少于 1000 行时具有很好的执行性能

DB2

MySQL

时间: 2024-10-11 16:36:19

批量数据入库的相关文章

TDH大数据平台数据入库方案

一.数据入库方式 目前批量数据入库TDH大数据平台主要有如下几种方式 1.手工入录 一些静态表手工维护的数据,可以直接采用insert导入,或者使用waterdrop客户端工具导入,只适用少数据量的导入和更新 2.dblink TDH inceptor支持建立dblink直接连接db2,oracle,mysql等关系数据库,对于一些数据量不大的静态表,手工维护的表,可以通过建立dblink的方式获取数据 优点:简单方便 缺点:1)对大数据量的表,效率较差 2)初次使用相应数据库的dblink时,

基于PHP采集数据入库程序(二)

在上篇基于PHP采集数据入库程序(二) 中提到采集新闻信息页的列表数据,接下来讲讲关于采集新闻具体内容 这是上篇博客的最终数据表截图: 接下来要做的操作就是从数据库中读取所需要采集的URL,进行页面抓取就行 新建一个content表 不过需要注意的一点是,不能再采用采集URL这种id递增的方法去采集,因为数据表中可能出现id断续,比如id=9,id=11,当采集到id=10的时候,URL是空白的,这样可能会导致采集到了空字段. 这里用到的一个技巧是数据库的查询语句,在我们采集完第一条数据的时候,

SQL Server 批量数据导入

1. 由于Bulk Insert通常配合格式化文件批量导入数据更方便,所以这里先介绍bcp工具导出格式化文件的方法. bcp是SQL Server提供的命令行实用工具提供了数据的导出.导入.格式文件导出等功能,导出格式化文件的语法如下: bcp 数据库名.用户名.表名 format nul -- 这里的nul必须存在,用于不是导出和导入数据的情况下 -f 输出的格式化文件名 [-x] -c -- -x参数指定输出的格式文件为xml格式(默认非xml格式); -c参数指定数据存储方式为字符,并默认

2.7 车间任务的批量移动和批量完工入库

2.6.1   业务方案描述 一般企业的生产离散任务数量较多,进行任务的工序移动和完工入库操作时,一个一个做,对操作人员的压力很大.为简化此类操作的业务操作及降低人为操作出错,以实现离散任务的批量工序移动和批量完工入库. 2.6.2   业务方案逻辑控制 通过标准离散查找的条件,需要建立如下字段信息,以实现[批量移动/批量完工]的可操作性: 1) 任务.任务说明.装配件.装配件描述: 2) 有无工艺路线(需要查询装配件有无工艺路线.该列也不允许编辑.有则显示"Y".无则显示"

一般数据存储和批量数据存储比较--10万条数据

一.在数据库中建立Student表 二.创建10万条数据 创建数据 三.创建一般数据存储方法 public static void SaveGeneral(DataTable dt) { string strConn = @"Data Source=.;Initial Catalog=Test;Integrated Security=True"; SqlConnection conn = new SqlConnection(strConn); conn.Open(); SqlComma

Mysqli的预编译机制处理批量数据过程

mysqli增强,还有一部分是对事物处理机制和预编译机制的增加,其实这两者都是为安全和执行效率着想的,这里主要说一下mysqli的预编译机制. 所谓的预编译,并不是在php的内核进行编译,而是数据库管理系统进行预编译,由于用于批量数据,说白了就是把一部分固定的数据格式先在mysql上面进行一次编译,编译之后就不在对其进行再次编译,我们要做的就是,向编译的占位符(就是数据占位)添加数据,之后发送,这样的话,大大的减少了编译次数,提高了批处理的效率. 下面是一段简单的示例代码: <?php $mys

BDC、CATT批量数据维护

声明:原创作品,转载时请注明文章来自SAP师太技术博客:www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将追究法律责任!原文链接:http://www.cnblogs.com/jiangzhengjun/p/4291452.html BDC批量数据导入... 19 SM35(包含SHDB)录屏操作... 19 生成程序... 22 带服务器端测试数据文件... 22 编辑服务器端上生成的测试数据文件... 23 CG3Y.CG3Z文件每行字符超长问

基于PHP采集数据入库程序(一)

前几天有一朋友要我帮做一个采集新闻信息的程序,抽了点时间写了个PHP版本的,随笔记录下. 说到采集,无非就是远程获取信息->提取所需内容->分类存储->读取->展示 也算是简单"小偷程序"的加强版吧 下面是对应核心代码(别拿去做坏事哦^_^) 所要采集的内容是某游戏网站上的公告,如下图: 可先利用file_get_contents和简单正则获取基本页面信息 整理下基本信息,采集入库: <?php include_once("conn.php&qu

数据库批量数据插入问题分析

在数据库的相关开发中,经常会遇到数据的批量插入问题.本文主要是通过实验的方式探讨批量数据插入的瓶颈,以及优化建议. 以10w条记录的插入作为实验对象,采用下面的几种方法插入: 1.       普通插入:普通的一条条插入 2.       普通插入+手动提交:setAutoCommit(false).commit() 3.       普通插入+手动提交+ prepareStatement方式 4.       批量插入:addBatch.executeBatch 5.       批量插入:i