zoukankan      html  css  js  c++  java
  • 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秒。

  • 相关阅读:
    升级系统引起的
    php curl批处理
    看《黑炮事件》想到的
    查找单链表的倒数第k个值
    python绘制树枝
    暑假第九测
    网络流24题(持续更新)
    P2657 [SCOI2009]windy数
    P3177 [HAOI2015]树上染色
    暑假第六测
  • 原文地址:https://www.cnblogs.com/handboy/p/7153334.html
Copyright © 2011-2022 走看看