SELECT
H.SOSIKI_CD AS H_SOSIKI_CD ,H.HATYU_NO AS H_HATYU_NO ,H.INS_DT
AS H_INS_DT ,H.HATYU_D AS H_HATYU_D ,H.TORIHIKI_KBN AS
H_TORIHIKI_KBN ,H.KESSAI_TYP AS H_KESSAI_TYP ,H.TORIHIKI_CD AS
H_TORIHIKI_CD ,T.TORIHIKI_NAM_F AS T_TORIHIKI_NAM_F ,H.BUNRUI_CD AS
H_BUNRUI_CD ,H.NOHIN_D AS H_NOHIN_D ,H.MAX_NOHIN_D AS H_MAX_NOHIN_D
,H.UPD_ID AS H_UPD_ID ,H.HATYU_TYP AS H_HATYU_TYP ,R.HATYU_DTL_NO
AS R_HATYU_DTL_NO ,R.SYOHIN_CD AS R_SYOHIN_CD ,R.SYOHIN_NAM_F AS
R_SYOHIN_NAM_F ,R.IRI_SURYO AS R_IRI_SURYO ,R.CASE AS R_CASE
,R.BUNRUI_CD AS R_BUNRUI_CD ,R.HATYU_SURYO AS R_HATYU_SURYO
,R.HATYU_TANKA AS R_HATYU_TANKA ,R.HATYU_KIN AS R_HATYU_KIN
,R.KENPIN_SURYO AS R_KENPIN_SURYO ,R.CANCEL_SURYO AS R_CANCEL_SURYO
,R.MINYUKA_SURYO AS R_MINYUKA_SURYO
FROM
(TR_HATHED AS H LEFT OUTER JOIN MS_TORIHIKI AS T ON
H.TORIHIKI_CD = T.TORIHIKI_CD) INNER JOIN TR_HATREC AS R
ON H.SOSIKI_CD = R.SOSIKI_CD AND H.HATYU_NO = R.HATYU_NO
where H.SOSIKI_CD IS NOT NULL order by H.SOSIKI_CD, H.HATYU_NO,
R.HATYU_DTL_NO
위의 쿼리인데요...죄송합니다 보기 불편하시죠? 용서해주세요...;;
TR_HATHED테이블에는 프라이머리키(SOSIKI_CD, HATYU_NO) 말고는
인덱스가 없습니다.
TR_HATREC테이블에는 프라이머리키(SOSIKI_CD, HATYU_NO,
HATYU_DTL_NO)와
인덱스(SYOHIN_CD, BUNRUI_CD)가 있습니다.
TR_HATHED 에는 7822701개의 레코드,
MS_TORIHIKI 에는 3254개,
TR_HATREC 에는 28699343개가 있습니다.
위의 3개 테이블을 조인해서 SELECT하는데 시간이 너무
오래걸립니다.
runstats로 갱신하고 속도가 조금 빨라졌지만 그래도 너무
오래걸립니다. 한 10분정도....ㅡ.ㅜ
고수님들의 한수 가르침을 받고 싶습니다. 어떻게 하면 얼마없는
인덱스를 태워서 속도를 올릴 수 있을까요
그리고 전체 검색을 하다가 SYSTEM FILE IS FULL이라는 에러도
여러번 조우했습니다..;;
이유와 해결방안도 알려주세요...부탁드립니다...
|