SQLServer2012中的分页方法分析(偏移量取)

SQLServer2012中的分页方法分析(偏移量取)
胶印的新特点并获取分页是最重要的,因为我们必须分析分页,在分页模式来比较,特别是(row_number),在比较中,发现相当多,但最重要的是,通过比较本质的优点和缺点,和大家一起分享

准备工作,建立测试表:article_detail,主要是用来存储一些信息,测试时间,也从网易新闻转载上述内容,测试数据的字段类型是比较均匀的,为了更好的测试表的结构如下图所示:
数据容量:129991条记录

语法分析

1的分页方法。ntile()

(ntile)方法可用于分页,但现场的应用是很窄的,和表现不佳,和(row_number)与偏取页面没有任何优势,只有在上述寻呼只读表,或者更恰当的;虽然不好,但也要分页,所以只有一个简短的下。

Grammar:

ntile(integer_expression)对({ })
到指定的组数在一个有序的分区列分布。每组编号,从一开始的编号。对于每一行,ntile返回集团,属于数。

测试中使用的SQL语句:
复制代码代码如下所示:
设置统计时间
设置统计数据
设置统计配置文件
与#寻呼机一样

选择ID、标题、ntile(8666)在(订单ID)作为pageid从article_detail

选择ID、标题从#寻呼机,pageid = 50
设置统计配置文件;

8666以上数据按行/页大小计算,但他们中的许多人可以查阅自己的MSDN。

2的分页方法。row_number()

在SQL Server 2000版,row_number()分页模式已经很好了,一个页面比以前,很多好的表现,因为row_number()不会导致全表扫描,但语法比较复杂,并且,随着数量的增加,性能越来越差。
Grammar:
row_number()()({在value_expression分区,…{ { } } order_by_clause)
测试中使用的SQL语句:

复制代码代码如下所示:
DBCC freeproccache
DBCC dropcleanbuffers
设置统计时间
设置统计数据
设置统计配置文件;
与#寻呼机一样

选择ID、标题、row_number()在(订单ID)是从article_detail rowid

选择ID、标题从#寻呼机,rowid之间(15 *(50-1)+ 1)和15×50
设置统计概要文件;
3的分页方法。偏移量取

Grammar:
偏integer_constant { offset_row_count_expression } | { } |排排
获取第一个{下} { } { | integer_constant fetch_row_count_expression |排排只有| }
它可以从语法这两种方法不仅可以将整数类型参数,而且连接的表达,如1×2+3等。同时,行或行不区分大小写和单个复数。
在sql语句的测试中,它真的很简单明了,看了两遍就能记住语法,分页也可以这么简洁:
复制代码代码如下所示:
DBCC freeproccache
DBCC dropcleanbuffers
设置统计时间
设置统计数据
设置统计配置文件;
选择ID,ID为抵消article_detail标题(15 *(50-1))行取下15
设置统计概要文件;

用一句话来做!
性能比较
1。ntile()实施计划
执行计划中,我们可以看到,我们执行了一个完整的表扫描表、两次嵌套循环和无数其他操作。我们可以知道整个桌子扫描桌的性能很差。
2。row_number()实施计划
它可以从执行计划中的聚集索引扫描占用了100%的资源,但它可以通过estimaterows = 100行= 750,全表扫描是没有见过,和IO操作是非常小的,因此具有很好的性能。

三.偏移和提取实现计划
执行计划只有3行,占资源IO操作的100%。estimaterows = 100行= 750是完全一样的,但row_number()等操作都少多了,也就是说,没有全表扫描,和CPU的消耗减少。

综合比较:

在SQL Server 2012中,在分页方法,偏取相比,row_number(),无论是在性能和语法。

但性能并不太大,两者的IO消耗是相同的,但在CPU方面,偏移量和取数比较好,但不明显,如果db每秒处理数千条分页SQL语句,CPU中的偏移和抽取的优势将更明显,否则性能改善就不明显了。

胶印的语法和取是非常简洁的,一句比row_number()。
同样是偏取不仅可用于分页,具体的其他用途,您可以参考MSDN
免责声明:本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕。
相关文章
返回顶部