SQL2005生成系列号(行号)两种方式效率比较

本文通过两种不同的方法测试SQL Server的性能:一是使用CTE递归查询生成10万条记录;二是利用系统表生成行号的方式同样生成10万条记录。测试结果显示,第二种方法在CPU时间和占用时间上都优于第一种。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

--1.用CTE递归测试 DBCC DROPCLEANBUFFERS DBCC FREEPROCCACHE SET STATISTICS TIME ON ;WITH t AS ( SELECT 1 AS num UNION ALL SELECT num+1 FROM t WHERE num<100000 ) SELECT * FROM t OPTION(MAXRECURSION 0) SET STATISTICS TIME OFF /* DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。 DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。 (100000 行受影响) SQL Server 执行时间: CPU 时间 = 2297 毫秒,占用时间 = 3536 毫秒。 */ --2.用通过系统表生成行号测试 DBCC DROPCLEANBUFFERS DBCC FREEPROCCACHE SET STATISTICS TIME ON SELECT TOP 100000 num=ROW_NUMBER()OVER(ORDER BY GETDATE()) FROM syscolumns a,syscolumns b SET STATISTICS TIME OFF /* DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。 DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。 (100000 行受影响) SQL Server 执行时间: CPU 时间 = 0 毫秒,占用时间 = 872 毫秒。 */

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值