日期:2014-05-16  浏览次数:20863 次

select 语句性能问题
Oracle中,涉及到多个表的查询,请问以下2条语句哪条性能更优?
1.在字段查询中用SELECT语句
SELECT A.ID,A.USERNAME
(SELECT NAME FROM Code WHERE TYPE='NATION' AND CODE=NATION_CODE) AS "NATION_CODE",
(SELECT NAME FROM Code WHERE TYPE='RELATIVE' AND CODE=Rela_Code) AS RELA_NAME
FROM Test A
2.用JOIN语句
SELECT A.ID,A.USERNAME,C1.NAME AS "NATION_CODE",C2.NAME AS RELA_NAME
FROM Test A
LEFT JOIN Code C1 ON A.NATION_CODE=C1.CODE AND C1.TYPE='NATION'
LEFT JOIN Code C2 ON A.Rela_Code=C2.CODE AND C1.TYPE='RELATIVE'
查询?性能

------解决方案--------------------
测试了一把,在完全没有索引的情况下,第二种是第一种的两倍cost
------解决方案--------------------
这个得看你的数据,看看执行计划结果吧、