数据库 一次插入几万条数据

最近做了一个功能, 操作的数据量特别大,

一次 往数据库  插入上万条数据。我用了 循环添加, 和EF封装的添加功能。

两次方式速度都非常慢,一万条数据都要近一分钟的时间。

在网上 查找资料后, 可以创建一个Datatable对象,然后把数据都赋值给这个Datatable对象的列。

然后Copy到数据库就行了。

下面这段代码是:实例化一个Datatable,  然后确定所有的列。列名最好于表里的字段一样哦

        然后循环你的 大数据,每次循环都创建一列,添加到Datatable。

Datatable dt=new Datatable      //创建Datatbel数据源

//确定DataTable字段的类型
dt.Columns.Add("ProductID", typeof(int));
dt.Columns.Add("TracingCode", typeof(string));
dt.Columns.Add("Createtime", typeof(DateTime));

//循环list数组, 每循环一个,创建一行
//然后添加到DataTable里面
foreach (es_Tracing tracing in TracingList)
{
  DataRow dr = dt.NewRow();
  dr["ProductID"] = tracing.ProductID;
  dr["TracingCode"] = tracing.TracingCode;
  dr["Createtime"] = tracing.Createtime;
  dt.Rows.Add(dr);
}

然后把这个dt  Copy到 指定表里面就行了

把GetDataTableData(pid,count)换成你的 dt就行了, 或者你自己封装方法

end...

原文地址:https://www.cnblogs.com/liuzheng0612/p/11104418.html

时间: 2024-10-08 13:33:17

数据库 一次插入几万条数据的相关文章

批量插入100万条数据

创建数据库: --Create DataBase create database BulkTestDB; go use BulkTestDB; go --Create Table Create table BulkTestTable( Id int primary key, UserName nvarchar(32), Pwd varchar(16)) go --Create Table Valued CREATE TYPE BulkUdt AS TABLE (Id int, UserName

java 批量插入10万条数据

for (int i = 0; i < 100000; i++) { dbHelper.insert("INSERT aaa(name) Values ('1')"); } 运行时间==780450ms conn = getConn(); // JAVA默认为TRUE,我们自己处理需要设置为FALSE,并且修改为手动提交,才可以调用rollback()函数 conn.setAutoCommit(false); st = conn.createStatement(); long s

通过存储过程,插入300万条数据的一点思考?

1.今天凌晨1点多开始插入数据,到现在为止,一共插入的数据大小,大约是30M数据,但是总量在190M数据左右 2.中间我去睡觉,电脑可能也是处于睡眠状态. 3.电脑的性能也很大程度决定了这个处理数据的速度(比如,位宽,是否支持超频等等吧.) 4.灵活处理问题吧,300万条数据太多,可以选择3万条数据处理,计时处理,我们可以选择3000条数据处理,做实验就是要一个模拟环境 5.千万不要死板教条, 6.及时回顾之前的知识点,核心知识点,经常性回顾.(一定会有新收获的) 7.注意身体,身体是革命的本钱

Oracle 快速插入1000万条数据的实现方式

1.使用dual配合connect by level create table BigTable as select rownum as id from dual connect by level <= 100000; 但是有connect by level有上限,如果超出上限,系统会报,"connect by level"内存不足,我试过1000000万数据可以,但是再多就不行了. 2. 使用xmltable,"CONNECT BY 操作内存不足,10g开始支持XML

oracle循环插入1万条数据

declare maxnumber constant number:=10000; i number :=1; begin for i in 1..maxnumber loop insert into DEPT(DEPTID,DEPTNAME,FATHERID) values(i,CONCAT('test',i),i-1); --CONCAT('test',i)是将test与i进行拼接 end loop; dbms_output.put_line(' 成功录入数据! '); commit; en

JDBC_批处理Batch_插入2万条数据的测试

批处理   Batch 对于大量的批处理,建议使用Statement,因为PreparedStatement的预编译空间有限,当数据特别大时,会发生异常. import java.sql.Connection; import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement; /** * 测试批处理的基本用法 * * @author Adm

顺序插入50万条数据

DECLARE @Start INT = 1;              --开始 DECLARE @Digits INT = 6;             --后几位 DECLARE @prefix VARCHAR(50) = '0990';--前缀 DECLARE @end INT=500000;             --结束 SET @Start = 1 WHILE @Start < @end BEGIN INSERT  INTO Test ( TId ) VALUES  ( @pre

如何快速的将已知的1000万条数据插入到数据库中

首先,可以定义1个1000万次的循环,每次循环插入1条数据,当1000万次循环全部执行结束,则插入完成! 也可以使用1条INSERT语句插入多条数据,例如: INSERT INTO t_user (username, password, age, phone, email) VALUES ('user01', 'password01', 11, '13800138001', '[email protected]'), ('user02', 'password02', 12, '138001380

极限挑战—C#+ODP 100万条数据导入Oracle数据库仅用不到1秒

链接地址:http://www.cnblogs.com/armyfai/p/4646213.html 要:在这里我们将看到的是C#中利用ODP实现在Oracle数据库中瞬间导入百万级数据,这对快速批量导入的实现有重要意义. .Net程序中可以通过ODP调用特性,对Oracle数据库进行操作,今天来讲一下数据批量插入的功能,所用技术不高不深,相信很多朋友都接触过,小弟班门弄斧了,呵呵.这篇文章是上篇文章的续集,因为上一次试验的征集结果没有突破4秒的方法,所以这次继续挑战与挖掘新方法,虽然是Orac