Oracle11g 我的查询性能很低,如何改进以获得更高的处理速度

Oracle11g 我的查询性能很低,如何改进以获得更高的处理速度,oracle11g,Oracle11g,这是我的问题 select h1.cd,h2.cd,h3.cd,h4.cd, h1.cd_nm dae, h2.cd_nm jung, h3.cd_nm so, h4.cd_nm se from HAKSA.HL_NCS_C h1, HAKSA.HL_NCS_C h2, HAKSA.HL_NCS_C h3, HAKSA.HL_NCS_C h4, EJ_HAKGWA_JIKMU_M e1 where h1.cd_lvl=1 and h2.up_cd=h1.cd and h3.up

这是我的问题

select 
h1.cd,h2.cd,h3.cd,h4.cd,
h1.cd_nm dae, h2.cd_nm jung, h3.cd_nm so, h4.cd_nm se 
from HAKSA.HL_NCS_C h1, 
HAKSA.HL_NCS_C h2, 
HAKSA.HL_NCS_C h3, 
HAKSA.HL_NCS_C h4, 
EJ_HAKGWA_JIKMU_M e1 
where h1.cd_lvl=1 
and h2.up_cd=h1.cd 
and h3.up_cd=h2.cd 
and h4.up_cd=h3.cd 
and H1.NCS_CD_GBCD=01;
实际上在甲骨文的蟾蜍中,它的处理速度很快。但我把它用于另一个叫做UXStudio的程序。我用这个程序。大约需要3-4秒。我建议使用这个代码

   SELECT
    T1.CD_NM AS NCS_DAE
    , T2.CD_NM AS NCS_JUNG
    , T3.CD_NM AS NCS_SO
    , T4.CD_NM AS NCS_SE
    , T1.CD AS NCS_DAE_CD
    , T2.CD AS NCS_JUNG_CD
    , T3.CD AS NCS_SO_CD
    , T4.CD AS NCS_CD_SE
FROM HAKSA.HL_NCS_C T1 

LEFT OUTER JOIN HAKSA.HL_NCS_C T2
ON T1.CD_LVL = '1'
AND T2.CD_LVL = '2'
AND T2.SAYONG_YN = '1'
AND T1.CD = T2.UP_CD

LEFT OUTER JOIN HAKSA.HL_NCS_C T3
ON T2.CD_LVL = '2'
AND T3.CD_LVL = '3'
AND T3.SAYONG_YN = '1'
AND T2.CD = T3.UP_CD

LEFT OUTER JOIN HAKSA.HL_NCS_C T4
ON T3.CD_LVL = '3'
AND T4.CD_LVL = '4'
AND T4.SAYONG_YN = '1'
AND T3.CD = T4.UP_CD

WHERE T1.NCS_CD_GBCD = '01' 
AND T1.SAYONG_YN = '1'
AND T2.NCS_CD_GBCD = '01'
AND T3.NCS_CD_GBCD = '01'
AND T4.NCS_CD_GBCD = '01'

在我看来,这太长了。我可以得到一个新的解决方案吗?

查询处理时间都花在数据库服务器上,不管您使用什么客户机语言,4秒对于具有4个表的联接来说,响应时间也不错,只要您不必频繁执行。这两个查询返回的结果集似乎完全不同。在第二种情况下,您正在进行左连接而不是内部连接,并且您正在添加大量额外的谓词。表有多大,查询计划是什么,有哪些索引可用,返回了多少数据,您需要查询以多快的速度运行?我希望在1~2秒的响应时间内获取数据。第二个查询可以获取当时的数据。我只是想知道另一个计划。