SQL Server 2005 分页研究和优化(3)

    前两次讨论了SQL server 2005分页效率和方法。在sql server 2000的分页是采用什么方法啊,对比一下两者的差别和性能

   

    SQL server 2000的分页方法,

    其常用分页sql代码如下:

SELECT   TOP   19    *
FROM
 
[ dbo ] . [ [[zping.com ] ]]]]
WHERE
 (ID 
NOT   IN  ( SELECT   TOP  ( 10 * ( 10000 - 1 )) ID  FROM    [ dbo ] . [ [[zping.com ] ]]]]  ORDER   BY  ID  DESC ))
ORDER   BY
 ID 
DESC

 

      这里的第10万页是分页的页数。在取10万页的分页看看执行效率:   

19  行受影响)
表 
' [[zping.com]] ' 。扫描计数  2 ,逻辑读取  101723  次,物理读取  0  次,预读  0  次,lob 逻辑读取  0  次,lob 物理读取  0  次,lob 预读  0  次。

 

    发现和上次去的第10万行分页逻辑读是一样的。而且扫描表有2次,说明和上一个分页效率一样,越到最后页效率很低。

   

    我个人认为:

    网上说这个方法在sql server 2000可以“实现高性能千万量的数据分页”,这不一定对,在前几页效率是很高的,越到最后分页效率是很低的,SQL server 2005在中分页的确做了很大提升。在使用时大家要注意到这一点:“并不是取所有分页数据都很快

 

你可能感兴趣的:(sql server 2005)