--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 毫秒。 */
SQL2005生成系列号(行号)两种方式效率比较
最新推荐文章于 2024-12-16 21:57:27 发布
本文通过两种不同的方法测试SQL Server的性能:一是使用CTE递归查询生成10万条记录;二是利用系统表生成行号的方式同样生成10万条记录。测试结果显示,第二种方法在CPU时间和占用时间上都优于第一种。
130

被折叠的 条评论
为什么被折叠?



