如何加快插入的速度?
时间:2011-12-05
来源:互联网
SQL code
---------建立测试数据(MSSQL2000) if exists (select * from sysobjects where id = object_id(N'table1') and OBJECTPROPERTY(id, N'IsUserTable') = 1) begin drop table table1 end GO CREATE TABLE [table1] ( [系统单号] [int] NOT NULL , [系统行号] [int] NULL , [系统款号] [int] NULL , [箱号] [varchar] (6000) COLLATE Chinese_PRC_CI_AS NULL , [颜色] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL , [尺码] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL , [数量] [numeric](20, 8) NULL ) ON [PRIMARY] GO Insert table1 (系统单号,系统行号,系统款号,箱号,颜色,尺码,数量) Values ( 662,16030,15761,'662#16030','白色','215',1.00000000) Insert table1 (系统单号,系统行号,系统款号,箱号,颜色,尺码,数量) Values ( 662,16030,15761,'662#16030','白色','220',1.00000000) Insert table1 (系统单号,系统行号,系统款号,箱号,颜色,尺码,数量) Values ( 662,16030,15761,'662#16030','白色','225',2.00000000) Insert table1 (系统单号,系统行号,系统款号,箱号,颜色,尺码,数量) Values ( 662,16030,15761,'662#16030','白色','230',1.00000000) Insert table1 (系统单号,系统行号,系统款号,箱号,颜色,尺码,数量) Values ( 662,16030,15761,'662#16030','白色','235',1.00000000) Insert table1 (系统单号,系统行号,系统款号,箱号,颜色,尺码,数量) Values ( 662,16030,15761,'662#16030','白色','240',NULL) Insert table1 (系统单号,系统行号,系统款号,箱号,颜色,尺码,数量) Values ( 662,16030,15761,'662#16030','白色','245',NULL) Insert table1 (系统单号,系统行号,系统款号,箱号,颜色,尺码,数量) Values ( 662,16030,15761,'662#16030','白色','250',NULL) Insert table1 (系统单号,系统行号,系统款号,箱号,颜色,尺码,数量) Values ( 662,16031,15761,'662#16031','白色','215',3.00000000) Insert table1 (系统单号,系统行号,系统款号,箱号,颜色,尺码,数量) Values ( 662,16031,15761,'662#16031','白色','220',4.00000000) Insert table1 (系统单号,系统行号,系统款号,箱号,颜色,尺码,数量) Values ( 662,16031,15761,'662#16031','白色','225',4.00000000) Insert table1 (系统单号,系统行号,系统款号,箱号,颜色,尺码,数量) Values ( 662,16031,15761,'662#16031','白色','230',5.00000000) Insert table1 (系统单号,系统行号,系统款号,箱号,颜色,尺码,数量) Values ( 662,16031,15761,'662#16031','白色','235',4.00000000) Insert table1 (系统单号,系统行号,系统款号,箱号,颜色,尺码,数量) Values ( 662,16031,15761,'662#16031','白色','240',NULL) Insert table1 (系统单号,系统行号,系统款号,箱号,颜色,尺码,数量) Values ( 662,16031,15761,'662#16031','白色','245',NULL) Insert table1 (系统单号,系统行号,系统款号,箱号,颜色,尺码,数量) Values ( 662,16031,15761,'662#16031','白色','250',NULL) go select * from table1 go ----由上面的表,写一个查询,目的:相同单号,相同箱号,相同颜色,相同款号分为一类,以尺码不同分配一个流水号 ----实现方法一: if exists (select * from tempdb.dbo.sysobjects where id = object_id(N'tempdb..#tb') and type='U') drop table #tb select Num=(select count(*) from table1 where 系统单号=a.系统单号 and 系统款号=a.系统款号 and 箱号=a.箱号 and 颜色=a.颜色 and 尺码<=a.尺码),* into #tb from table1 a select * from #tb -------要得到的查询结果 /* Num 系统单号 系统行号 系统款号 箱号 颜色 尺码 数量 ---------------------------------------------------------------------------------- 1 662 16030 15761 662#16030 白色 215 1.00000000 2 662 16030 15761 662#16030 白色 220 1.00000000 3 662 16030 15761 662#16030 白色 225 2.00000000 4 662 16030 15761 662#16030 白色 230 1.00000000 5 662 16030 15761 662#16030 白色 235 1.00000000 6 662 16030 15761 662#16030 白色 240 NULL 7 662 16030 15761 662#16030 白色 245 NULL 8 662 16030 15761 662#16030 白色 250 NULL 1 662 16031 15761 662#16031 白色 215 3.00000000 2 662 16031 15761 662#16031 白色 220 4.00000000 3 662 16031 15761 662#16031 白色 225 4.00000000 4 662 16031 15761 662#16031 白色 230 5.00000000 5 662 16031 15761 662#16031 白色 235 4.00000000 6 662 16031 15761 662#16031 白色 240 NULL 7 662 16031 15761 662#16031 白色 245 NULL 8 662 16031 15761 662#16031 白色 250 NULL */ ---发现当手插入3000多条记录时,就用了30秒,这样太慢了 ---我记得可以运用一个已有的流水号T_SN表然后跟table1进行连接,可以快很多的,一时忘了不知么写? ----建立一个已有的流水号表,暂时用着5000条记录 if exists (select * from sysobjects where id = object_id(N'T_SN') and OBJECTPROPERTY(id, N'IsUserTable') = 1) begin drop table T_SN end GO CREATE TABLE [T_SN] ( [number] [int] NULL ) ON [PRIMARY] GO declare @intNum int SET @intNum = 1 WHILE @intNum <= 5000 BEGIN INSERT INTO T_SN([Number]) VALUES(@intNum) SET @intNum = @intNum +1 END
作者: SKY1006 发布时间: 2011-12-05
一行一行循环是非常慢的
参考:
http://topic.csdn.net/t/20060718/08/4886776.html
参考:
http://topic.csdn.net/t/20060718/08/4886776.html
作者: maco_wang 发布时间: 2011-12-05
你用的是WHILE 循环 不会快的
作者: fredrickhu 发布时间: 2011-12-05
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28