MyException - 我的异常网
当前位置:我的异常网» Sql Server » 一次性插入海量数据的有关问题,高手抢分啦啦啦

一次性插入海量数据的有关问题,高手抢分啦啦啦

www.MyException.Cn  网友分享于:2015-08-26  浏览:0次
一次性插入海量数据的问题,高手抢分啦啦啦
有个表,表名是table1,自序ID(int),一个name(varchar),一个type(varchar)
先前我用程序for循环insert into table1 (name,type) valuse ("名字","类型");
当数据超过1000+的时候数据库基本崩溃了

翻阅网上说有一种贼牛的方法叫批量插入,也就是一次性插入数据

我后来根据资料,先设定了个变量str,然后在for中
{
  str+="insert into table1 (name,type) valuse ("名字","类型");";
}
sqldb = str;
sqlexe(sqldb);
执行这个sql语句
当数据小于10w的时候,2-5秒基本ok,但是数据超过100w的时候,要20多秒

寻求高手伸出援助的小手,谢了


------解决思路----------------------
批量造数语句
原理就是先写一条数据,然后循环将当前数据再复制一遍(你可以用newid等方式创建不重复的字符串)
于是,每批插入的数据为2^(N-1),可以提高效率
参考脚本如下

CREATE TABLE #a (n int NOT NULL PRIMARY KEY )
DECLARE @max AS INT ,@min INT,@rc AS INT
SET @max=130101797;
SET @min=130014711
SET @rc=1;
INSERT INTO #a VALUES (@min);
WHILE @rc * 2 <=@max-@min
BEGIN 
INSERT INTO #a SELECT n+@rc FROM #a
SET @rc=@rc*2
END 

INSERT INTO #a SELECT n +@rc FROM #a WHERE n+@rc<=@max;

------解决思路----------------------
引用:
Quote: 引用:

生成文本,上传到服务器,用bulk导入...100W ...很easy的...


对对,据说有这么个bulk的东西,如何写呢

--test.txt  文件内容
--7000,23940
--234,234
--2394,2
--4234,32

--drop table test
create table test(col varchar(200),id int)
 
  bulk insert test
  from 'f:\test.txt'
  with
  (fieldterminator=',',
  rowterminator='\n')
   select * from test
 类似这样
------解决思路----------------------
正好看到一篇:请参考:
http://www.cnblogs.com/wintersun/archive/2011/01/30/1948034.html

文章评论

那些性感的让人尖叫的程序员
那些性感的让人尖叫的程序员
总结2014中国互联网十大段子
总结2014中国互联网十大段子
“懒”出效率是程序员的美德
“懒”出效率是程序员的美德
程序猿的崛起——Growth Hacker
程序猿的崛起——Growth Hacker
如何成为一名黑客
如何成为一名黑客
中美印日四国程序员比较
中美印日四国程序员比较
为啥Android手机总会越用越慢?
为啥Android手机总会越用越慢?
写给自己也写给你 自己到底该何去何从
写给自己也写给你 自己到底该何去何从
10个调试和排错的小建议
10个调试和排错的小建议
10个帮程序员减压放松的网站
10个帮程序员减压放松的网站
Web开发人员为什么越来越懒了?
Web开发人员为什么越来越懒了?
那些争议最大的编程观点
那些争议最大的编程观点
不懂技术不要对懂技术的人说这很容易实现
不懂技术不要对懂技术的人说这很容易实现
 程序员的样子
程序员的样子
程序员的一天:一寸光阴一寸金
程序员的一天:一寸光阴一寸金
老程序员的下场
老程序员的下场
当下全球最炙手可热的八位少年创业者
当下全球最炙手可热的八位少年创业者
程序员应该关注的一些事儿
程序员应该关注的一些事儿
初级 vs 高级开发者 哪个性价比更高?
初级 vs 高级开发者 哪个性价比更高?
Web开发者需具备的8个好习惯
Web开发者需具备的8个好习惯
漫画:程序员的工作
漫画:程序员的工作
十大编程算法助程序员走上高手之路
十大编程算法助程序员走上高手之路
我的丈夫是个程序员
我的丈夫是个程序员
5款最佳正则表达式编辑调试器
5款最佳正则表达式编辑调试器
聊聊HTTPS和SSL/TLS协议
聊聊HTTPS和SSL/TLS协议
2013年美国开发者薪资调查报告
2013年美国开发者薪资调查报告
程序员必看的十大电影
程序员必看的十大电影
程序员都该阅读的书
程序员都该阅读的书
60个开发者不容错过的免费资源库
60个开发者不容错过的免费资源库
编程语言是女人
编程语言是女人
Java 与 .NET 的平台发展之争
Java 与 .NET 的平台发展之争
程序员的鄙视链
程序员的鄙视链
2013年中国软件开发者薪资调查报告
2013年中国软件开发者薪资调查报告
一个程序员的时间管理
一个程序员的时间管理
程序员周末都喜欢做什么?
程序员周末都喜欢做什么?
做程序猿的老婆应该注意的一些事情
做程序猿的老婆应该注意的一些事情
程序员眼里IE浏览器是什么样的
程序员眼里IE浏览器是什么样的
Google伦敦新总部 犹如星级庄园
Google伦敦新总部 犹如星级庄园
科技史上最臭名昭著的13大罪犯
科技史上最臭名昭著的13大罪犯
如何区分一个程序员是“老手“还是“新手“?
如何区分一个程序员是“老手“还是“新手“?
亲爱的项目经理,我恨你
亲爱的项目经理,我恨你
鲜为人知的编程真相
鲜为人知的编程真相
我是如何打败拖延症的
我是如何打败拖延症的
老美怎么看待阿里赴美上市
老美怎么看待阿里赴美上市
团队中“技术大拿”并非越多越好
团队中“技术大拿”并非越多越好
程序员和编码员之间的区别
程序员和编码员之间的区别
要嫁就嫁程序猿—钱多话少死的早
要嫁就嫁程序猿—钱多话少死的早
看13位CEO、创始人和高管如何提高工作效率
看13位CEO、创始人和高管如何提高工作效率
每天工作4小时的程序员
每天工作4小时的程序员
软件开发程序错误异常ExceptionCopyright © 2009-2015 MyException 版权所有