• sql时间区间查询性能测试


    这个测试针对"一个月"的区间来查询数据。分datetime类型和nvachar类型。

    先比较datetime类型:

    一.datediff函数

    declare @beginTime datetime
    set @beginTime = GETDATE()
    select top 100 * from [Resume] where DATEDIFF(day,'2013-03-25',UpdateTime)>0 and DATEDIFF(day,'2013-03-25',UpdateTime) < 30
    select DATEDIFF(MS,@beginTime,GETDATE())
    --result: 26ms

    二.大于和小于时间区间

    declare @beginTime1 datetime
    set @beginTime1 = GETDATE()
    select top 100 * from [Resume] where (UpdateTime>'2013/03/25' and UpdateTime < '2013/04/24')
    select DATEDIFF(MS,@beginTime1,GETDATE())
    --result:20ms

    三.between..and..

    declare @beginTime2 datetime
    set @beginTime2 = GETDATE()
    select top 100 * from [Resume] where UpdateTime between '2013/03/25' and '2013/04/24'
    select DATEDIFF(MS,@beginTime2,GETDATE())
    --result:20ms

    再比较nvarchar类型:

    一.大于和小于时间区间

    declare @beginTime4 datetime
    set @beginTime4 = GETDATE()
    select top 100 * from [Resume] where [ExpireDate] >'2014/3/25' and [ExpireDate] < '2014/4/24'
    select DATEDIFF(MS,@beginTime4,GETDATE())
    --result:53ms

    二.between..and..

    declare @beginTime3 datetime
    set @beginTime3 = GETDATE()
    select top 10 * from [Resume] where [ExpireDate] between '2014/3/25' and '2014/4/24'
    select DATEDIFF(MS,@beginTime3,GETDATE())
    --result:53ms

    通过以上比较,datetime类型查询数据效率要快的多,程序处理也方便。

    同一类型字段按照某一时间区间来查询数据的话,用大于和小于时间区间查询数据效率略高。

    查询数据时也不鼓励使用sql函数对表字段做任何动作。

  • 相关阅读:
    软件工程作业团队作业No.1
    软件工程作业No.5
    软件工程作业No.4
    软件工程作业No.3
    软件工程作业No.2
    java 读写yml文件,修改文件内容保持原格式
    oracle 相关
    git基础从创建仓库开始
    oracle安装过程问题记录
    Java 实现小工具读取文件有多少个单词
  • 原文地址:https://www.cnblogs.com/paulhe/p/3690883.html
Copyright © 2020-2023  润新知