SQL Server 2005 分页研究和优化(3)
2008-07-21 17:39
302 查看
前两次讨论了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 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 分页研究和优化(2)
- SQL Server 2005 分页研究和优化(4)
- SQL Server 2005 分页研究和优化(1)
- SQL Server 2005 一千万条以上记录分页数据库优化经验总结(转载)
- SQL Server 2005 一千万条以上记录分页数据库优化经验总结
- SQL Server 2005分页查询性能优化
- [转]各种分页 in SQL Server 2005, SQL Server 2000, MS Access and MySQL
- Sql server 2005的分页存储过程,利用ROW_NUMBER()新特性
- 利用SQL Server 2005减轻生产服务器优化负荷
- SQL SERVER 2005中的新分页
- SQL Server 2000/2005 分页SQL — 单条SQL语句
- 3-3 SQL Server 2005数据库优化
- 利用SQL Server 2005减轻生产服务器优化负荷
- SQL SERVER 分页研究
- SQL Server 重建索引|索引重组|索引的碎片检查 (MSSQL个人笔记之数据库优化之路 六<SQL2005以上>)
- 关于 SQL Server 2005 分页的几个帖子
- SQL Server 2005: 利用新的ranking函数实现高效的数据分页操作
- SQL SERVER 2005分页存储过程
- SQL Server 2000和2005通用分页存储过程
- 收藏一个HIBERNATE对SQL SERVER 2005分页支持的问题