您的位置:首页 > 数据库

巧用getdate()测试你的sql执行效率

2014-05-20 23:56 260 查看
  在开发项目的过程中,我们会遇到各种各样的问题,有时候由于业务逻辑复杂,我们写的sql语句会很长很长,甚至会嵌套很多层,这个时候我就会担心sql执行时间会不会太长了?会不会有什么问题导致执行效率变慢?经过同事的帮助,我解决了这个疑虑,方法如下:

declare @beginTime datetime --定义一个变量,用于存储查询开始时间.

set @beginTime = getdate() --获取当前时间并赋值给@beginTime.

--select ................... --这里写对应的sql执行语句.

select [sql语句执行时间]=datediff(ms,@beginTime,getdate()) --得到的结果就是对应的sql语句执行的时间,ms:毫秒.

  代码特别简单,就用到了两个系统函数,getdate()和datediff(),getdate()就不用多说了吧,获取当前系统时间,简单说说datediff().

DATEDIFF() 函数,用于返回两个日期之间的天数。

语法:DATEDIFF(datepart,startdate,enddate)

参数说明:startdate 和 enddate 参数是合法的日期表达式,要进行比较的开始时间和结束时间。

    datepart 参数可以是下列的值:

    

datepart缩写
yy, yyyy
季度qq, q
mm, m
年中的日dy, y
dd, d
wk, ww
星期dw, w
小时hh
分钟mi, n
ss, s
毫秒ms
微秒mcs
纳秒ns
实例:

例子 1

使用如下 SELECT 语句:

SELECT DATEDIFF(day,'2013-01-04','2013-01-05') AS DiffDate

结果:

DiffDate
1
使用如下 SELECT 语句:
例子 2

SELECT DATEDIFF(day,'2013-01-04','2013-01-03') AS DiffDate

结果:

DiffDate
-1
参考文档: http://www.w3school.com.cn/sql/func_datediff.asp

      http://www.w3school.com.cn/sql/func_getdate.asp
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: