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
--以下在查询分析器中操作:
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. 释放独占。
1. 独占表。(最简单的办法是只有你一个人的ip能够访问服务器)
2. 去掉所有的索引、关联、约束、触发器。
3. 去掉日志记录。
4. 输入数据。
5. 重建2.中的一切。
6. 释放独占。
#8
把网线拔掉,然后按bulk方式导入吧!
#9
先用bcp或DTS导入到SQL的一个表中,再由这个表导入到正式表中..
insert into table1 select 。。。。from 你导入的表。
insert into table1 select 。。。。from 你导入的表。
#10
去除非聚集索引后再插入数据,比不去除非聚集索引就插入数据快
#11
更正:去除非聚集索引后再插入数据,比不去除非聚集索引就插入数据快
改为:去除非聚集索引后插入数据,再重建索引,比不去除非聚集索引直接插入数据要快
改为:去除非聚集索引后插入数据,再重建索引,比不去除非聚集索引直接插入数据要快
#12
插入前约束 索引去掉
插入后再恢复
插入后再恢复
#13
250M左右的文本文件???
单用户,断网络,关日志
用BULK INSERT
单用户,断网络,关日志
用BULK INSERT
#14
up
#15
速度快不一定是好事,如果数据很重要还是建个其它表一条条保存进去的好
250M???啊,普通的方式根本就打不开!你的内存有多大?
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
--以下在查询分析器中操作:
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. 释放独占。
1. 独占表。(最简单的办法是只有你一个人的ip能够访问服务器)
2. 去掉所有的索引、关联、约束、触发器。
3. 去掉日志记录。
4. 输入数据。
5. 重建2.中的一切。
6. 释放独占。
#8
把网线拔掉,然后按bulk方式导入吧!
#9
先用bcp或DTS导入到SQL的一个表中,再由这个表导入到正式表中..
insert into table1 select 。。。。from 你导入的表。
insert into table1 select 。。。。from 你导入的表。
#10
去除非聚集索引后再插入数据,比不去除非聚集索引就插入数据快
#11
更正:去除非聚集索引后再插入数据,比不去除非聚集索引就插入数据快
改为:去除非聚集索引后插入数据,再重建索引,比不去除非聚集索引直接插入数据要快
改为:去除非聚集索引后插入数据,再重建索引,比不去除非聚集索引直接插入数据要快
#12
插入前约束 索引去掉
插入后再恢复
插入后再恢复
#13
250M左右的文本文件???
单用户,断网络,关日志
用BULK INSERT
单用户,断网络,关日志
用BULK INSERT
#14
up
#15
速度快不一定是好事,如果数据很重要还是建个其它表一条条保存进去的好
250M???啊,普通的方式根本就打不开!你的内存有多大?
250M???啊,普通的方式根本就打不开!你的内存有多大?