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秒的响应时间内获取数据。第二个查询可以获取当时的数据。我只是想知道另一个计划。