小女巫 发表于 2015-1-16 22:35:47

MYSQL网站制作之TOPN 子句与SET ROWCOUNTN 之对照

即使对于MySQL的商业化的企业版来说,也没有高昂的许可证成本,当你将其与像甲骨文和微软之类的大型专有商业数据库比较的话。问:为了从查询中前往指定命量的行,利用TOPN子句比利用SETROWCOUNTN语句要快吗?
答:在准确举行了索引的情形下,TOPN子句和SETROWCOUNTN语句是一样快的,可是假如数据未经由排序,TOPN要快一些。在输出未排序的情形下,TOPN操纵时利用一个经由排序的小的两头一时表,并且操纵时仅仅交换该表的最初一行。假如输出是近似排序的,TOPN引擎必需删除或拔出最初行,但只需几回操纵便可。近似排序意味着您正在处置的堆集在初始构建时可举行有序的拔出操纵,而且不必要举行良多的更新、删除、向前挪动指针等操纵。
排序一个近似排序的堆集比排序一个伟大的表要更无效率。在一次测试中,利用TOPN来对一个由无序拔出操纵构建的而且含有一样的行数的表举行排序,发明TOPN的效力也不高。一般,在举行过索引和未举行过索引的情形下,I/O工夫都是一样的;可是假如没有举行过索引,SQLServer必需要举行一次全表扫描。处置器工夫和实耗工夫申明近似排序的堆集要更无效率一些。但I/O工夫是不异的,由于不论如何SQLServer都要读取一切的行。
MySQL的支持者们却认为,MySQL所保留的功能都是精华,并且是你部署、MySQL学习教程配置和维护这个数据库所必不可少的一些功能。

老尸 发表于 2015-1-25 13:04:43

一直以来个人感觉SQLServer的优化器要比Oracle的聪明。SQL2005的更是比2k聪明了不少。(有次作试验发现有的语句在200万级时还比50万级的相同语句要快show_text的一些提示没有找到解释。一直在奇怪。)

愤怒的大鸟 发表于 2015-2-2 22:12:42

我是一个ERP初学者,对于前台运用基本熟悉,但对于后台SQLServer的运用一点也不懂,特想学习下相关资料。至少懂得一些基本的运用。希望各位能给于建议,小弟再谢过!

变相怪杰 发表于 2015-2-8 12:24:03

而SQLServer如果能像Oracle一样可以为登陆分配如:5%的cpu,10%的内存。就可以解决这个漏洞。

活着的死人 发表于 2015-2-25 12:46:01

发几份SQL课件,以飨阅者

简单生活 发表于 2015-3-7 21:35:32

记得在最开始使用2k的时候就要用到这个功能,可惜2k没有,现在有了作解决方案的朋友会很高兴吧。

蒙在股里 发表于 2015-3-15 14:46:25

习惯敲命令行的朋友可能会爽一些。但是功能有限。适合机器跑不动SQLServerManagementStudio的朋友使用。

因胸联盟 发表于 2015-3-22 02:09:18

这就引发了对varchar和char效率讨论的老问题。到底如何分配varchar的数据,是否会出现大规模的碎片?

admin 发表于 2015-3-22 02:09:19

是否碎片会引发效率问题?这都是需要进一步探讨的东西。varbinary(max)代替image也让SQLServer的字段类型更加简洁统一。
页: [1]
查看完整版本: MYSQL网站制作之TOPN 子句与SET ROWCOUNTN 之对照