TOPN 子句与SET ROWCOUNTN 之对比

2016-01-29 16:21 3 1 收藏

TOPN 子句与SET ROWCOUNTN 之对比,TOPN 子句与SET ROWCOUNTN 之对比

【 tulaoshi.com - SQLServer 】

 

问:为了从查询中返回指定数量的行,使用 TOPN 子句比使用SET ROWCOUNTN 语句要快吗?

答:在正确进行了索引的情况下,TOP N 子句和SET ROWCOUNT N 语句是一样快的,但是如果数据未经过排序,TOP N 要快一些。在输入未排序的情况下,TOP N 操作时使用一个经过排序的小的中间临时表,而且操作时仅仅替换该表的最后一行。如果输入是近似排序的,TOP N 引擎必须删除或插入最后行,但只需几次操作即可。近似排序意味着您正在处理的堆集在初始构建时可进行有序的插入操作,并且不需要进行很多的更新、删除、向前移动指针等操作。

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/sqlserver/)

排序一个近似排序的堆集比排序一个巨大的表要更有效率。在一次测试中,使用TOP N 来对一个由无序插入操作构建的并且含有同样的行数的表进行排序,发现TOP N 的效率也不高。通常,在进行过索引和未进行过索引的情况下,I/O时间都是一样的;但是如果没有进行过索引,SQL Server 必须要进行一次全表扫描。处理器时间和实耗时间说明近似排序的堆集要更有效率一些。但I/O时间是相同的,因为不管怎样SQL Server都要读取所有的行。

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/sqlserver/)

 

 

来源:http://www.tulaoshi.com/n/20160129/1498370.html

延伸阅读
标签: Web开发
传统ajax Code 代码如下: script language="javascript" var xmlHttp; function createXMLHttpRequest(){ if(window.ActiveXObject) xmlHttp = new ActiveXObject("Microsoft.XMLHTTP"); else if(window.XMLHttpRequest) xmlHttp = new XMLHttpRequest(); } function startRequest(){ createXMLHttpRequest(); xmlHttp.open("GET...
标签: 月子
传统月子与科学月子大对比 月子里的传统观点是否正确?当年姐姐做月子的时候,总是听到奶奶在一旁说,不能干这个,不能干那个的。但是实际上,那些老的观点真的都正确吗?让我们来了解一下,月子里的传统观点是否正确吧。 月子里的传统观点是否正确 1、月子里不能受风受凉 坐月子的传统观念很多,怕风怕凉是其中之一。究其原因,还是...
标签: 分娩
分娩妈妈的阵痛都一样吗 什么是产痛? 产痛是由于子宫肌肉组织的挛缩造成的。竖纹和斜纹排列的肌肉纤维将梨形的子宫包裹得异常坚韧,这样分层又交错的排列使得子宫可以在荷尔蒙的控制下达到最大限度的收缩,还可以适当的调节用力方向,这样就可以使出足够的力气,将宝宝推出体外tulaoshi.com。产痛总的来...
功能说明: 设置shell。 语 法: set [+-abCdefhHklmnpPtuvx] 补充说明: set指令能设置所使用shell的执行方式,可依照不同的需求来做设置。 参 数: -a  标示已修改的变量,以供输出至环境变量。  -b  使被中止的后台程序立刻回报执行状态。  -C  转向所产生的文件无法覆盖已存在的文件...
标签: Web开发
php的require()与include(),在性能方面并无大的不同。 仅有的一些不同在于: include()执行时文件每次都要进行读取和评估; require()执行时文件只处理一次(实际上,文件内容替换了require()语句)。 即如果有包含这些指令之一的代码和可能执行多次的代码,则使用require()效率比较高。 另外,如果每次执行代码时要读取不同的文件,...

经验教程

532

收藏

70
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部