SQLServer数据库的分页查询处理方法综述
sqlserver2008不支持关键字的限制,所以它的分页SQL查询将不会在MySQL的方式进行。幸运的是,SQLServer2008提供顶级的,rownumber等关键词,所以这些页面可以翻阅这些关键词。以下是我在网上咨询过的几个查询脚本的编写:
几个SQLServer2008高效分页SQL查询语句
TOP计划:
SQL代码:
选择前10从表1
在我不在(ID从表1从选择上)
最大值:
SQL代码:
选择前10从表1
id >(选择max(id))
从(选择上从表1订单ID的位置ID)TT)
行:
SQL代码:
选择*
(从
选择row_number()以上(以tempcolumn)temprownumber,*
(选择上从起始位置+ 10 tempcolumn = 0,从表1)T
TT)
在temprownumber >开始位置
分页的3种方式是max、顶部和行。
效率:
1:排
2:最大
3:顶
缺点:
马克斯:用户必须编写复杂的SQL,不支持非唯一列排序。
顶层:复杂SQL必须由用户编写,不支持复合主键。
行:不支持SQLServer2000
测试数据:
共有320万个数据,每页显示10条数据,分别测试了2万页、15万页和32万页。
页码,顶层方案,马克斯格式,行格式
2万、60ms,46ms,33ms
15万、453ms,343ms,310ms
32万、953ms,720ms,686ms
这是一种通过程序连接SQL语句的分页方案,
用户所建议的SQL语句不需要编写复杂的SQL逻辑。
中午的用户提供SQL如下
SQL代码
SELECT * FROM表
从第五,查询5。经过处理后,SQL变成
SQL代码
选择*
(从
选择row_number()以上(以tempcolumn)temprownumber,*
从(选择前10 tempcolumn = 0,从表1)T
TT)
在temprownumber > 5
你什么意思发生故障
首先,将用户的输入SQL语句更改为稍微修改
选择后加上顶部开始位置+条数
Add a list of tempcolum and turn to this
SQL代码
选择前20 tempcolumn = 0 *类
嵌套一层,以便可以查询行号。
那一栏是在这里订购的。
(我不知道为什么row_number SQLServer功能必须通过)
SQL代码
选择row_number()以上(以tempcolumn)temprownumber,*
从(修改的查询)t
设置一个图层,过滤掉小于起始位置的行。
SQL代码
选择*(第二层)TT
在temprownumber > 10
总结
以上是SQLServer数据库的分页查询处理萧边介绍的简要总结。我们希望能帮助你。如果你有任何问题,请给我留言,萧边会及时给您回复。谢谢您支持网站。