您的位置:首页 > 数据库

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

2010-06-29 18:23 316 查看
--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 毫秒。

*/

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/htl258/archive/2009/09/20/4573244.aspx
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: