将20万条记录插入到一个表中,我测试了一下平均每秒166条,请教各位有什么办法可以提高速度

时间:2022-05-26 23:25:45
我有一个250M左右的文本文件,每行有几十个字节的数据,把这些数据都插入到一个表中,这个表有15个字段,即从文件中读15行组成一条记录插入到表中,请问各位大虾有什么办法效率最高,谢谢

15 个解决方案

#1


先用bcp导入到SQL的一个表中,再由这个表导入到正式表中

#2


250M左右的文本文件???
------------
再提高效率,也是相对的!

#3


--下面的方法可以提高效率.但有一定的风险.所以,操作之前先备份你的数据库.以防不测

--以下在查询分析器中操作:
alter database 你的数据库名 set recovery BULK_LOGGED 

--进行数据导入,也可以用dts导入
insert into 表 select * from 
OPENROWSET('MICROSOFT.JET.OLEDB.4.0'
,'Text;HDR=NO;DATABASE=C:\' --c:\是目录
,aa#txt) --aa#txt是文本文件名aa.txt


--导入完成后恢复状态
alter database test set recovery full

#4


java里面用executeBatch()将许多sql做成一个批处理。速度快一点。

#5


有一个办法,就是做分页,其他方法都无效,你可以参考一下sqlServer表中数据多的时后,MS就是采用部分显示的办法来骗用户的,如果你设计的发的好的话,多少数据都是一样的速度

#6


bulk copy。

#7


如果手工作,要做到这样一些步骤:

1. 独占表。(最简单的办法是只有你一个人的ip能够访问服务器)
2. 去掉所有的索引、关联、约束、触发器。
3. 去掉日志记录。
4. 输入数据。
5. 重建2.中的一切。
6. 释放独占。

#8


把网线拔掉,然后按bulk方式导入吧!

#9


先用bcp或DTS导入到SQL的一个表中,再由这个表导入到正式表中..

insert into table1 select 。。。。from 你导入的表。

#10


去除非聚集索引后再插入数据,比不去除非聚集索引就插入数据快

#11


更正:去除非聚集索引后再插入数据,比不去除非聚集索引就插入数据快
改为:去除非聚集索引后插入数据,再重建索引,比不去除非聚集索引直接插入数据要快

#12


插入前约束 索引去掉
插入后再恢复

#13


250M左右的文本文件???

单用户,断网络,关日志
用BULK INSERT

#14


up

#15


速度快不一定是好事,如果数据很重要还是建个其它表一条条保存进去的好

250M???啊,普通的方式根本就打不开!你的内存有多大?

#1


先用bcp导入到SQL的一个表中,再由这个表导入到正式表中

#2


250M左右的文本文件???
------------
再提高效率,也是相对的!

#3


--下面的方法可以提高效率.但有一定的风险.所以,操作之前先备份你的数据库.以防不测

--以下在查询分析器中操作:
alter database 你的数据库名 set recovery BULK_LOGGED 

--进行数据导入,也可以用dts导入
insert into 表 select * from 
OPENROWSET('MICROSOFT.JET.OLEDB.4.0'
,'Text;HDR=NO;DATABASE=C:\' --c:\是目录
,aa#txt) --aa#txt是文本文件名aa.txt


--导入完成后恢复状态
alter database test set recovery full

#4


java里面用executeBatch()将许多sql做成一个批处理。速度快一点。

#5


有一个办法,就是做分页,其他方法都无效,你可以参考一下sqlServer表中数据多的时后,MS就是采用部分显示的办法来骗用户的,如果你设计的发的好的话,多少数据都是一样的速度

#6


bulk copy。

#7


如果手工作,要做到这样一些步骤:

1. 独占表。(最简单的办法是只有你一个人的ip能够访问服务器)
2. 去掉所有的索引、关联、约束、触发器。
3. 去掉日志记录。
4. 输入数据。
5. 重建2.中的一切。
6. 释放独占。

#8


把网线拔掉,然后按bulk方式导入吧!

#9


先用bcp或DTS导入到SQL的一个表中,再由这个表导入到正式表中..

insert into table1 select 。。。。from 你导入的表。

#10


去除非聚集索引后再插入数据,比不去除非聚集索引就插入数据快

#11


更正:去除非聚集索引后再插入数据,比不去除非聚集索引就插入数据快
改为:去除非聚集索引后插入数据,再重建索引,比不去除非聚集索引直接插入数据要快

#12


插入前约束 索引去掉
插入后再恢复

#13


250M左右的文本文件???

单用户,断网络,关日志
用BULK INSERT

#14


up

#15


速度快不一定是好事,如果数据很重要还是建个其它表一条条保存进去的好

250M???啊,普通的方式根本就打不开!你的内存有多大?