튜닝관련 주관식 문제를 내 보았습니다.
h4.1.문제SQL
SELECT EX1_arrt1,
EX1_arrt2,
EX1_arrt3,
EX1_arrt4,
EX1_arrt5,
EX1_arrt6,
EX2_arrt1,
EX2_arrt2,
EX2_arrt3,
EX3_arrt4,
EX3_arrt5,
EX3_arrt6,
EXAMPLE_QTY1,
EXAMPLE_QTY2,
EXAMPLE_QTY3,
(EXAMPLE_QTY1 + EXAMPLE_QTY2 + EXAMPLE_QTY3) SUM_QTY
FROM (SELECT EX1.Attribute1 EX1_attr1,
EX1.Attribute2 EX1_attr2,
EX1.Attribute3 EX1_attr3,
EX1.Attribute4 EX1_attr4,
EX1.Attribute5 EX1_attr5,
EX1.Attribute6 EX1_attr6,
EX2.Attribute1 EX2_attr1,
EX2.Attribute2 EX2_attr2,
EX2.Attribute3 EX2_attr3,
EX3.Attribute4 EX3_attr4,
EX3.Attribute5 EX3_attr5,
EX3.Attribute6 EX3_attr6,
EX1.QTY * (SELECT SQLP_PKG.EXAMPLE_QTY1(EX1.colum2
,EX2.colum3
,NULL
,EX1.colum3
)
FROM DUAL) EXAMPLE_QTY1,
EX2.QTY * (SELECT SQLP_PKG.EXAMPLE_QTY1(EX1.colum2
,EX2.colum3
,NULL
,EX1.colum3
)
FROM DUAL) EXAMPLE_QTY1,
EX3.QTY * (SELECT SQLP_PKG.EXAMPLE_QTY1(EX1.colum2
,EX2.colum3
,NULL
,EX1.colum3
)
FROM DUAL) EXAMPLE_QTY1
FROM EX_SMAPLE1 EX1,
EX_SMAPLE2 EX2,
EX_SMAPLE3 EX3,
WHERE EX1.colum1 = EX2.colum1
AND EX1.colum1 = EX3.colum1
AND EX1.Creation Date BETWEEN TO_DATE(:B3, 'YYYYMMDD HH24:MI:SS')
AND TO_DATE(:B4, 'YYYYMMDD HH24:MI:SS') + 0.99999
) IV1,
EX_JOIN_TBL1 EJT1,
EX_JOIN_TBL2 EJT2
WHERE 1 = 1
AND IV1.Attribute1 = EJT1.Attribute1
AND EJT1.colum1 = EJT2.colum2
ORDER BY EX1_attr1,
EX2_attr1
IV1 Inline View안에서 Group By전 데이터는 약 1천건을 읽게 되며, 추후 EJT1과 EJT2를 거쳐 최종 데이터는 약 10여건으로
줄어 들게 되어 든다고 되었을 때
위의 SQL에서 성능적인 관점에서 어떠한 문제점이 존재하며 어떻게 문제점을 해결할 것인가?
h4.2.성능 측면에서 아래 프로그램이 가진 문제점을 나열하고, 각 문제점에 대한 개선 방안을 간단히 요약하시오. 또한, 최적의 성능을 내도록 하나의 SQL문장으로 작성하시오.