• Sql Server 2005 中的row_number() 分页技术


    原文发布时间为:2009-05-08 —— 来源于本人的百度文章 [由搬家工具导入]

    在Sql Server 2005中,我们可以利用新增函数row_number()来更高效的实现分页存储

      CREATE PROCEDURE p_GetStudentInfo
      @PageSize INT,
      @PageIndex INT,
      @strWhere varchar(1500) -- 查询条件(注意: 不要加where)
      As
      Begin
      select * from (
      select row_number() over (order by StudentInfoId) row,* from StudentInfo ) StudentInfo
      where row between @PageSize*(@PageIndex-1) and @PageSize*@PageIndex
      End
      go

      依照群组显示每条记录在该群组中出现的顺序位置,在显示每条记录编号时非常有用,并且搭配OVER子句,这样就可以实现查询记录的条数了。

      我们现在来比较一下它们执行的性能,StudentInfo表中现在有30多万条数据,我们分别来执行下面的存储过程:

      Exec p_GetStudentInfo
      @PageSize = 10000,
      @PageIndex = 10,
      @strWhere = '1=1'

      在Sql Server 2000中,执行的时间是接近2秒;

      在Sql Server 2005中,执行的时间显示的是接近0秒。

  • 相关阅读:
    YAOI Summer Round #4 (Div.2) 题解
    2021 暑假集训(福建师大附中)
    YAOI Round #7 题解
    YAOI Round #5 题解
    插头DP
    四边形不等式
    YAOI Round #3 题解
    关于 2020 年
    图论相关性质和结论(基础)
    斜率优化 DP :Luogu P2365 P5785「SDOI2012」任务安排 & 弱化版
  • 原文地址:https://www.cnblogs.com/handboy/p/7153334.html
Copyright © 2020-2023  润新知