SQLServer使用顶部的分页方法和row_number差异查询()解析函数
临近春节,心中一直没有工作的工作,下面的小编整理了一些数据库的几个页面查询。SQL Server 2005的前一版本:
选择顶部页面大小*
从表名
身份证不在
(
从表名称顺序选择顶部页面大小*(查询页面- 1)ID
)
订单ID
例如:
选择顶部10 * 10是页面大小
从{ tccline }。{ } { } cline_commonimage dbo。
身份证不在
(
40是这样计算出来的:10×(5-1)
页面大小*(查询页面- 1)
选择前40号tccline } { }。{ dbo。{由ID为cline_commonimage }
)
订单ID
结果如下:
SQL Server 2005及以上,多页查询方法:
*
*美国福斯特英德克斯:起始索引
*为:显示器每页号
* ordercolumn:字段名称排序
* SQL:可以是简单的单表查询语句,也可以是复杂的多表联合查询语句。
* /
选择顶部的PageSize O *(选择row_number()以上(以ordercolumn)为。
例如:
选择前10 numcomimg。*
(选择row_number()在(通过ID ASC顺序)为rownumber *(SELECT * FROM))
作为numcomimg哪里rownumber > 40
结果uff1a
这两个方法是一系列rewnumber当然不是,看看内部差异。
在这两个SQL上,分别添加以下SQL,并使用MS的实现计划,以方便查看执行细节:
设置统计时间
要执行的SQL:
设定统计时间
选择前10 numcomimg。*
(选择row_number()在(通过ID ASC顺序)为rownumber *(SELECT * FROM))
作为numcomimg哪里rownumber > 40
设置统计时间
选择顶部10 * 10是页面大小
从{ tccline }。{ } { } cline_commonimage dbo。
身份证不在
(
40是这样计算出来的:10×(5-1)
页面大小*(查询页面- 1)
选择前40号tccline } { }。{ dbo。{由ID为cline_commonimage }
)
订单ID
执行后,请参见执行计划:
可以看出,两个SQL具有相同的功能,在执行的时候,使用row_number(),具有比纯顶模式查询开销少得多。图表显示28:72,纯顶方式,并采用两聚集扫描。
查看执行时间。
row_number()模式:
纯顶模式:
相反,在row_number效率()解析功能更有效。
以上是萧边与你分享关于顶部和row_number SQLServer分页查询()使用不同的解析函数,希望对你有帮助。