笔记130 几种循环插入方式的比较
笔记130 几种循环插入方式的比较
1 --几种循环插入方式的比较 2 USE [tempdb] 3 CREATE TABLE #TestInsert 4 ( 5 Number INT PRIMARY KEY 6 ); 7 GO 8 --循环插入,不给力,我的笔记本3秒 9 DECLARE @index INT; 10 SET @index = 1; 11 12 WHILE @index <= 10000 13 BEGIN 14 INSERT #TestInsert(Number) VALUES( @index); 15 SET @index = @index + 1; 16 END 17 TRUNCATE TABLE #TestInsert 18 19 20 --放到一个事务中循环,略好,但也不是最好,我的笔记本不用1秒 21 BEGIN TRAN 22 DECLARE @index INT; 23 SET @index = 1; 24 25 WHILE @index <= 10000 26 BEGIN 27 INSERT #TestInsert(Number) VALUES( @index); 28 SET @index = @index + 1; 29 END 30 31 COMMIT 32 33 --批量插入,10W行,显示0秒,有兴趣的同学改成100W行进行测试 34 INSERT #TestInsert(Number) 35 SELECT TOP (100000) rn = ROW_NUMBER() OVER 36 (ORDER BY c1.[object_id]) 37 FROM sys.columns AS c1 38 CROSS JOIN sys.columns AS c2 39 CROSS JOIN sys.columns AS c3 40 ORDER BY c1.[object_id]; 41 42 43 --CTE方式,和上面那种方式大同小异,也是批量插入,比如: 44 WITH cte AS( 45 SELECT TOP (100000) rn = ROW_NUMBER() OVER 46 (ORDER BY c1.[object_id]) 47 FROM sys.columns AS c1 48 CROSS JOIN sys.columns AS c2 49 CROSS JOIN sys.columns AS c3 50 ORDER BY c1.[object_id] 51 ) 52 INSERT #TestInsert(Number) SELECT rn FROM cte
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!