日期:2014-05-17  浏览次数:20975 次

这两个查询哪个效率能高一点!!
①SELECT   A.ASSETSCODE,B.ASSETSNAME   FROM   ASSETSTABLE   AS   A,ASSETSNAME   AS     B  
WHERE   A.ASSETSNAMEID=B.ID   ORDER   BY   B.ASSETSNAME

②SELECT   ASSETSCODE,(SELECT   ASSETSNAME   FROM   ASSETSNAME  
WHERE   ID   =   ASSETSTABLE.ASSETSNAMEID)   AS   ASSETSNAME   FROM   ASSETSTABLE   ORDER   BY   ASSETSNAME

两个查询的结果完全是一样的,不知道哪个效率会高一些,谢谢!!

------解决方案--------------------
1
------解决方案--------------------
先试试!
------解决方案--------------------
肯定是1!2中的ASSETSTABLE都没有条件!
请问这两个的查询结果一样嘛?????
------解决方案--------------------
这样说也没有根据,要看实际的表数据量了,建议通过测试来得到答案,在同等数据量的前提条件下,运行这两个查询语句,看谁的执行时间短,谁的效率就更高.也可以看看执行计划,得出谁的效率高这个结论.
------解决方案--------------------
最终的还是要看执行计划的内容才能判断优劣

http://community.csdn.net/Expert/topic/5209/5209876.xml?temp=.8045008
------解决方案--------------------
2
------解决方案--------------------
这么那么多技术问题放在技术区?
------解决方案--------------------
第一个查询速度最快,因为你的第二个里面嵌套了子查询。如果你给出的这两个只是模版,你的第二个SQL的子查询可能很大,影响速度。Oracle支持16层嵌套,但是最好少用嵌套。Oracle最出色的就是关系型,两个字段一关联就OK了,这也是关系型数据库的代表Oracle设计的主要理念。不多说了,自己想想也明白了