ORACLE/Oracle_Tunning (3) 썸네일형 리스트형 Oracle 튜닝시 자주 사용되는 힌트 정리 Oracle 힌트(Hint)는 옵티마이저가 SQL 실행 계획을 생성할 때 특정 실행 방식을 따르도록 지시하는 역할을 한다.이를 통해 성능 최적화 및 튜닝을 수행할 수 있다. 하지만 힌트를 지정해놓는다고해서 항상 힌트를 따라가는 건 아니다. 작업 속도 및 최적화 관련 힌트PARALLEL테이블을 병렬로 스캔하도록 강제한다.예시: PARALLEL(table_name degree_of_parallelism) PARALLEL_INDEX인덱스 검색을 병렬로 수행하도록 설정한다. ALL_ROWS쿼리가 실행될 때 전체 결과 집합을 반환하는 데 최적화된다.배치 작업과 같은 대량 데이터 처리를 수행할 때 적합하다. FIRST_ROWS(N)N 개의 결과를 최대한 빠르게 반환하는 데 최적화된다.온라인 트랜잭션 처리(OLT.. Oracle 쿼리 튜닝 포인트 1. * 존재여부일반적으로 *가 존재하면 필요없는 컬럼들도 함께 불러올 가능성이 높으며(랜덤액세스↑),추후에 컬럼 추가시 문제가 발생할 수 있다.2. 컬럼이 있는 쪽은 변경하지 말고 우변에서 변수를 변경할 것인덱스를 아래 예시와 같이 변경하면 인덱스를 타지 못하고 풀스캔을 하게 된다.TO_CHAR(TEST_DATE, 'YYYYMMDD') BETWEEN :변수1 AND :변수2TEST_DATE BETWEEN TO_DATE BETWEEN TO_DATE(:변수1) || '0000', 'YYYYMMDDHH24MI') AND TO_DATE(:변수2 || '2359', 'YYYYMMDDHH24MI') 3. 스칼라 서브쿼리가 더 유용할지, LEFT OUTER JOIN이 더 유용할지 확인일반적으로 조건절에 따라 동일한.. ORACLE 플랜 확인 방법 ※ 실행계획을 캐싱해야 하기 때문에 꼭 여러번 실행계획을 돌려본 뒤에 확인 ## EXPLAIN PLAN FOREXPLAIN PLANSET STATEMENT_ID = 'PLAN1' INTO PLAN_TABLE -- PLAN ID 부여FORSELECT /*+ INDEX( A SYS_C007651) */ -- SQL 입력*FROM DAMIN.PROFESSOR AWHERE A.PROFNO=4006;SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY -- PLAN_TABLE에 저장된 실행계획 조회('PLAN_TABLE','PLAN1','ALL'));'ALL' 자리에 오는 옵션들'BASIC' : 플랜테이블만 보여줌'TYPICAL' : 플랜테이블 + ACCESS인지 FILTER 인지'ALL' : .. 이전 1 다음