SQL SERVER 快速插入千万条数据
2016-03-22 16:47
447 查看
1. 正常插入:插入非常慢。
2.优化插入:插入速度明显提升。
3.总结:一条语句可插入多条数据,以此来加快插入速度。具体原理,待大神们解释。
declare @count int = 10000000, @index int = 0 begin tran while(@index < @count) begin insert into OrderTest(ID) values (ROUND(RAND() * 10000000, 0)) set @index = @index + 1 end commit
2.优化插入:插入速度明显提升。
declare @count int = 10000000, @index int = 0 begin tran while(@index < @count) begin insert into OrderTest(ID) values --1 (ROUND(RAND() * 100000000, 0)) ,(ROUND(RAND() * 100000000, 0)) ,(ROUND(RAND() * 100000000, 0)) ,(ROUND(RAND() * 100000000, 0)) ,(ROUND(RAND() * 100000000, 0)) ,(ROUND(RAND() * 100000000, 0)) ,(ROUND(RAND() * 100000000, 0)) ,(ROUND(RAND() * 100000000, 0)) ,(ROUND(RAND() * 100000000, 0)) ,(ROUND(RAND() * 100000000, 0)) --2 ,(ROUND(RAND() * 100000000, 0)) ,(ROUND(RAND() * 100000000, 0)) ,(ROUND(RAND() * 100000000, 0)) ,(ROUND(RAND() * 100000000, 0)) ,(ROUND(RAND() * 100000000, 0)) ,(ROUND(RAND() * 100000000, 0)) ,(ROUND(RAND() * 100000000, 0)) ,(ROUND(RAND() * 100000000, 0)) ,(ROUND(RAND() * 100000000, 0)) ,(ROUND(RAND() * 100000000, 0)) --3 ,(ROUND(RAND() * 100000000, 0)) ,(ROUND(RAND() * 100000000, 0)) ,(ROUND(RAND() * 100000000, 0)) ,(ROUND(RAND() * 100000000, 0)) ,(ROUND(RAND() * 100000000, 0)) ,(ROUND(RAND() * 100000000, 0)) ,(ROUND(RAND() * 100000000, 0)) ,(ROUND(RAND() * 100000000, 0)) ,(ROUND(RAND() * 100000000, 0)) ,(ROUND(RAND() * 100000000, 0)) --4 ,(ROUND(RAND() * 100000000, 0)) ,(ROUND(RAND() * 100000000, 0)) ,(ROUND(RAND() * 100000000, 0)) ,(ROUND(RAND() * 100000000, 0)) ,(ROUND(RAND() * 100000000, 0)) ,(ROUND(RAND() * 100000000, 0)) ,(ROUND(RAND() * 100000000, 0)) ,(ROUND(RAND() * 100000000, 0)) ,(ROUND(RAND() * 100000000, 0)) ,(ROUND(RAND() * 100000000, 0)) --5 ,(ROUND(RAND() * 100000000, 0)) ,(ROUND(RAND() * 100000000, 0)) ,(ROUND(RAND() * 100000000, 0)) ,(ROUND(RAND() * 100000000, 0)) ,(ROUND(RAND() * 100000000, 0)) ,(ROUND(RAND() * 100000000, 0)) ,(ROUND(RAND() * 100000000, 0)) ,(ROUND(RAND() * 100000000, 0)) ,(ROUND(RAND() * 100000000, 0)) ,(ROUND(RAND() * 100000000, 0)) --6 ,(ROUND(RAND() * 100000000, 0)) ,(ROUND(RAND() * 100000000, 0)) ,(ROUND(RAND() * 100000000, 0)) ,(ROUND(RAND() * 100000000, 0)) ,(ROUND(RAND() * 100000000, 0)) ,(ROUND(RAND() * 100000000, 0)) ,(ROUND(RAND() * 100000000, 0)) ,(ROUND(RAND() * 100000000, 0)) ,(ROUND(RAND() * 100000000, 0)) ,(ROUND(RAND() * 100000000, 0)) --7 ,(ROUND(RAND() * 100000000, 0)) ,(ROUND(RAND() * 100000000, 0)) ,(ROUND(RAND() * 100000000, 0)) ,(ROUND(RAND() * 100000000, 0)) ,(ROUND(RAND() * 100000000, 0)) ,(ROUND(RAND() * 100000000, 0)) ,(ROUND(RAND() * 100000000, 0)) ,(ROUND(RAND() * 100000000, 0)) ,(ROUND(RAND() * 100000000, 0)) ,(ROUND(RAND() * 100000000, 0)) --8 ,(ROUND(RAND() * 100000000, 0)) ,(ROUND(RAND() * 100000000, 0)) ,(ROUND(RAND() * 100000000, 0)) ,(ROUND(RAND() * 100000000, 0)) ,(ROUND(RAND() * 100000000, 0)) ,(ROUND(RAND() * 100000000, 0)) ,(ROUND(RAND() * 100000000, 0)) ,(ROUND(RAND() * 100000000, 0)) ,(ROUND(RAND() * 100000000, 0)) ,(ROUND(RAND() * 100000000, 0)) --9 ,(ROUND(RAND() * 100000000, 0)) ,(ROUND(RAND() * 100000000, 0)) ,(ROUND(RAND() * 100000000, 0)) ,(ROUND(RAND() * 100000000, 0)) ,(ROUND(RAND() * 100000000, 0)) ,(ROUND(RAND() * 100000000, 0)) ,(ROUND(RAND() * 100000000, 0)) ,(ROUND(RAND() * 100000000, 0)) ,(ROUND(RAND() * 100000000, 0)) ,(ROUND(RAND() * 100000000, 0)) --10 ,(ROUND(RAND() * 100000000, 0)) ,(ROUND(RAND() * 100000000, 0)) ,(ROUND(RAND() * 100000000, 0)) ,(ROUND(RAND() * 100000000, 0)) ,(ROUND(RAND() * 100000000, 0)) ,(ROUND(RAND() * 100000000, 0)) ,(ROUND(RAND() * 100000000, 0)) ,(ROUND(RAND() * 100000000, 0)) ,(ROUND(RAND() * 100000000, 0)) ,(ROUND(RAND() * 100000000, 0)) set @index = @index + 100 end commit
3.总结:一条语句可插入多条数据,以此来加快插入速度。具体原理,待大神们解释。
相关文章推荐
- 仅一行代码完成各种数据库操作,基于spring的HibernateTemplate
- Mysql驱动不匹配
- print、sp_helptext的限制与扩展
- mysql-SQL Erro r: 1064, SQLState: 42000
- ORACLE ADF:VO查询入门
- mysql 时间函数
- mysql-5.5.32源码安装
- Oracle中Clob类型处理解析
- sql server锁表
- day10-redis操作
- mysql中时间存储类型的选择
- sql server for xml path 用法详解
- MySQL权限篇之ALTER ROUTINE
- mysql exits
- MySQL使用float查询为空
- MySQL使用float查询为空
- MySQL5.6 新特性(全局事务标示符(GTID))
- 导出(下载)数据库查询的数据生成csv文件
- MyBatis配置输出SQL语句
- 160321、ORACLE分页查询SQL语法——最高效的分页