代码改变世界

2句sql语句的比较

2008-10-17 15:28  Wings dark  阅读(568)  评论(4编辑  收藏  举报

  在看.net面试题时,看到这样一道题目:SQLSERVER服务器中,给定表 table1 中有两个字段 ID、LastUpdateDate,ID表示更新的事务号, LastUpdateDate表示更新时的服务器时间,请使用一句SQL语句获得最后更新的事务号?

 看到后我的写法是 select top 1 ID from table1 order by LastUpdateDate desc(方法一),这应该是大家最常想到的吧。

看了答案写的是: Select ID FROM table1 Where LastUpdateDate = (Select MAX(LastUpdateDate ) FROM table1 ) (方法二)

两个方法都是对的,但是哪个执行速度更快呢,我试了一下,第二种写法要更快,虽然它看上去要比第一种写的复杂。但是在执行效率上确实要更好一点(在数据量较大的情况下)

 以下是对于一个有10万条数据的表,分别列出两种写法的执行时间:

方法一:

   SQL Server 执行时间:

   CPU 时间 = 452 毫秒,耗费时间 = 452 毫秒。

方法二:

 

   SQL Server 执行时间:

   CPU 时间 = 87 毫秒,耗费时间 = 87 毫秒。

 有不足处希望大家多提意见