zoukankan      html  css  js  c++  java
  • 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函数对表字段做任何动作。

  • 相关阅读:
    熟悉常用的HBase操作
    爬虫大作业
    熟悉常用的HDFS操作
    数据结构化与保存
    获取全部校园新闻
    爬取校园新闻首页的新闻的详情,使用正则表达式,函数抽离+网络爬虫基础练习
    中文词频统计
    英语词频统计
    AXIOS中文文档
    overload方法重载
  • 原文地址:https://www.cnblogs.com/paulhe/p/3690883.html
Copyright © 2011-2022 走看看