본문 바로가기

It's all !

[Tuning] 분석함수의 활용 (셀프조인의 해결) 분석함수의 활용 (셀프조인의 해결) 사용자가 요구하는 리포트의 특성 또는 테이블의 설계적인 특성 으로 인한 Self-Join 상의 과부하적인 부분을 해소할 수 있는 방안이 있습니다. 특히 이번 예제에서는 Self-Outer Join에 대 해 사용할 수 있는 분석용 함수를 알아 보고자 합니다. - 인덱스정보 DANGA_HIST_PK : CODE + SEQ_NO (Self-Join이면서 아우터 조인 형태) SELECT A.CODE, A.SEQ_NO, A.PRICE, A.BEGIN_YMD, NVL(B.BEGIN_YMD,'99991231') END_YMD FROM DANGA_HIST A, DANGA_HIST B WHERE A.CODE = B.CODE(+) AND A.SEQ_NO + 1 = B.SEQ_NO(+);.. 더보기
[Tuning] 분석함수의 활용 (셀프조인의 해결) Analytic Functions 의 활용 -> 셀프 조인의 해결 #1 Original Source -- View Merge 현상 발생 SELECT C.BRNCOD, C.CMPID, C.STSDAT, C.STS, C.AMT FROM CUSTOMER C, /* 최종상태*/ (SELECT B.BRNCOD, B.CMPID, B.STSDAT, MAX(B.STS) MAX_STS FROM CUSTOMER B, /* 최종날짜 */ (SELECT BRNCOD, CMPID, MAX(STSDAT) MAX_DAT FROM CUSTOMER WHERE STSDAT 0 call count cpu elapsed disk query current rows ------- ------ -------- ---------- --------.. 더보기
[Tuning] Scalar 서브쿼리 활용 [개요] Sub-query 는 조인과 더불어 자주 사용되고 있습니다. 특히, 아우터 조인과 똑같은 결과를 만들어 내기 위한 방안으로 1) PL/SQL을 이용한 사용자 정의 함수(User defined function)의 사용 2) Scalar Sub-query의 사용 등을 고려할 수 있습니다. 이번 예제에서 는 이러한 두 가지 방안의 내부적 수행원리를 비교해 보도록 하겠습니다. 기본정보 Rule Based Optimizer EC_COURSE : EC_COURSE_PK : COURSE_CODE EC_COURSE_SQ : EC_COURSE_SQ_PK : COURSE_CODE + YEAR + COURSE_SQ_NO EC_COURSE_SQ_IDX_01 : YEAR (Non Unique) 0. Before Tun.. 더보기
[Tuning] Nested와 Correlated Sub-query의 동시 사용 [사례연구] Nested와 Correlated Sub-query의 동시 사용 本 사례에서는 요구사항의 특성으로 인해 SQL 의 WHERE 절에 IN과 EXISTS를 동시에 사용할 수 밖에 없는 경우, 이를 효과적으로 처리 할 수 있는 방안을 찾고자 한다. - 요구사항 전체 과정(COURSE_CODE)에 대하여 2000년에 신청자가 전혀 없거나 500 명 미만인 과정에 대해 과정코드와 과정명을 조회하고자 합니다. 전제조건 Rule Based Optimzer EC_COURSE : EC_COURSE_PK : COURSE_CODE EC_APPLY : EC_APPLY_PK : COURSE_CODE + YEAR + COURSE_SQ_NO + MEMBER_TYPE + MEMBER_ID Before Tuning SEL.. 더보기
[Tuning] SET AUTOTRACE TRACEONLY EXPLAIN SET AUTOTRACE TRACEONLY EXPLAIN -- 실제 데이터량이 너무 많고 시간이 너무 오래 걸릴 경우 실제 돌려보면 너무나 많은 시간 때문에 실데이터베이스에 부하가 생길 수가 있다. 이럴때 사용하는 것이다. 바로 실행계획만 보여주고 데이터는 보여주지 않는다. 데이터를 확인해보려면 SET AUTOTRACE OFF 더보기
[Tuning] 서브쿼리를 통한 튜닝 기본조건 Rule Based Optimizer EC_COURSE : EC_COURSE_PK : COURSE_CODE EC_APPLY : EC_APPLY_PK : COURSE_CODE + YEAR + COURSE_SQ_NO + MEMBER_TYPE + MEMBER_ID 0. Before Tuning SELECT A.COURSE_CODE, A.COURSE_NAME FROM EC_APPLY B, EC_COURSE A WHERE A.COURSE_CODE = B.COURSE_CODE(+) AND B.YEAR(+) = '2000' GROUP BY A.COURSE_CODE, A.COURSE_NAME HAVING COUNT(B.COURSE_CODE) > 0 call count cpu elapsed disk query .. 더보기
[Tuning]결합인덱스 문제 관련 조인 시 사용된 결합인덱스의 문제 ▶ Optimizer_mode = Rule Based Optimizer ▶ 인덱스 정보 EC_COURSE_CD : EC_COURSE_CD_PK : DIM_COURSE_KEY EC_USER_CNT : EC_USER_CNT_PK : DIM_TIME_KEY + DIM_COURSE_KEY + DIM_GEN_KEY ▶ Before Tuning (Original Source) SELECT A.DIM_COURSE_NAME,B.DIM_TIME_KEY,SUM(B.USER_CNT) FROM EC_COURSE_CD A, EC_USER_CNT B WHERE A.DIM_COURSE_KEY = B.DIM_COURSE_KEY AND A.DIM_BIG_KEY = '02' AND B.DIM_TIME_.. 더보기
[Tuning] 인덱스에 의한 Sort 대체 인덱스에 의한 Sort 대체 ▶ Index 정보 - 인덱스정보 EC_COURSE : EC_COURSE_PK : COURSE_CODE EC_COURSE_SQ : EC_COURSE_SQ_PK : COURSE_CODE + YEAR + COURSE_SQ_NO EC_COURSE_SQ_IDX_01 : YEAR (Non Unique) EC_APPLY : EC_APPLY_PK : COURSE_CODE + YEAR + COURSE_SQ_NO + MEMBER_TYPE + MEMBER_ID EC_APPLY_COMPANY_IDX : COMPANY_NO (Non Unique) ++ 테이블 중 EC_COURSE_SQ 테이블만 통계정보 존재 ▶ Before Tuning SELECT B.COURSE_CODE, C.COURSE_NAM.. 더보기
[Tuning] perfect_study_01 Database 기동 작업 ================== /DBA1/dba00> sqlplus "/as sysdba" SQL> startup ORACLE instance started. Total System Global Area 51454112 bytes Fixed Size 73888 bytes Variable Size 33538048 bytes Database Buffers 16777216 bytes Redo Buffers 1064960 bytes Database mounted. Database opened. SQL> exit Optimizer ========= - SQL에 대해 해석(parse)을 하고, 실행계획을 수립한 후 이를 통해 데이터를 처리하는 프로세스를 일컫는다. --------- (.. 더보기
[Book] 처음 읽는 서양 철학사 처음 읽는 서양 철학사 국내도서>인문 저자 : 안광복 출판 : 웅진지식하우스 2007.11.20상세보기 ▶ 중에서 괴짜 같은 철학자들도 실은 평범한 사람들과 다를 바 없다. 인정받고 싶어하고, 사랑을 꿈꾸며, 괴팍한 부모 때문에 고민한다. 때로는 변화를 꿈꾸기도 한다. 내 가슴속 고민을 철학자들의 삶 속에서 찾아보라. 짝사랑에 마음 태운다면, 키르케고르가 어떻게 연애를 했는지 알아보자. 교회 나가라고 들들 볶는 주변 사람들 때문에 짜증이 벌컥거린다면 아우구스티누스를 읽어라. 철학자들의 삶을 들여다보며 "아, 그래! 이건 내 고민과 똑같아!"라고 느껴지는 순간, 그때가 바로 나의 철학의 출발점이다. 비로소 철학이 내 삶에 쓸모 있는 무엇으로 다가올 것이다. ▶ 책을 펼쳐들며 이제 내 나이도 서른살이다. 이.. 더보기