zoukankan      html  css  js  c++  java
  • 转:SQL SERVER2012新分页方式

    原贴:http://blog.csdn.net/guguda2008/article/details/7370398 
     

            SQL SERVER2012在ORDER BY 子句中加入了新元素offset,允许用户在排序完成的结果集中自定义输出行范围,大大简化了分页SQL的书写方式和效率。以下是与以前的两种分页方式的简单对比

    use master go set nocount on go set showplan_text on go
    --2012的OFFSET分页方式 select number  from spt_values where type='p' order by number offset 10 rows fetch next 5 rows only; go
    --2005的ROW_NUMBER分页方式 select number from ( select number,row_number() over(order by number) as num from spt_values where type='p' ) t where num between 11 and 15 order by number asc go
    --2000的TOP分页方式 select number from ( select top 5 number from ( select top 15 number from spt_values where type='p' order by number asc ) t order by number desc ) t  order by number asc go set showplan_text off go 
    从查询计划来看,2012的查询计划中,offset直接操作了top迭代器,分页计划十分简单,看起来也比后两种简单明了。
    而在系统预估的查询开销中,OFFSET占9%,ROW_NUMBER占45%,TOP占47%(加起来101% -_-||),OFFSET占了绝对的优势。

        在2008的更新中,我最喜欢的是MERGE,2012中就是OFFSET了。

  • 相关阅读:
    Android读书笔记三
    Android读书笔记二
    Android读书笔记一
    cpp plugin system
    houdini已放弃2
    ssh-keygen
    linux library
    software with plugin
    houdini已放弃
    C++ template
  • 原文地址:https://www.cnblogs.com/mikemao/p/2723818.html
Copyright © 2011-2022 走看看