zoukankan      html  css  js  c++  java
  • Sql Server 2005 中的row_number()分页技术

    在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秒。

      如果数据涉及到千万级的数据时,比较上面两种方法,就可以看到一些显著的差别了。

    曾经年少多少事 而今皆付谈笑中!

  • 相关阅读:
    python——函数
    python——文件操作
    python——字符编码
    【转】基于jquery的无刷新表格分页
    js console.log 打印 对像 数组 详解
    百度地图自己添加 标识地点 代码
    在线提取PDF中图片和文字
    安全cookie登录状态设计方案
    iScroll 下拉刷新
    WebSQL实例记录
  • 原文地址:https://www.cnblogs.com/xuf22/p/1266095.html
Copyright © 2011-2022 走看看