본문 바로가기

Tuning

[Tuning] Nested Loop Join (튜닝포인트) 1. 조인 순서의 최적화 2. 연결고리(조인조건)에 대한 인덱스 생성 및 사용 3. 인덱스를 잘 활용해야 한다. -- Suppressing 의 적재적소 사용 -- 인덱스 매칭율을 고려한 인덱스 확인 -- 연결고리로 읽는 것을 확인 * JOIN 순서 제어를 위한 방법 (4가지) 1) 힌트 (*+ ORDERED *.) 2) Supprssing 3) 뷰 활용 4) FROM 절의 테이블 순서 변경 (단, RBO일 경우만 일부 가능하다.) 더보기
[Tuning] optimizer_mode 세션 별로 CBO, RBO에 대한 실행계획을 확인 하기 위해서는 실제로 ANALYZE TABLE ___ COMPUTE STATISTICS; 를 사용하는 것이 아니라 optimizer_mode를 셋팅을 한다. SQL> show parameter optimizer_mode NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ optimizer_mode string CHOOSE SQL> SQL> SQL> ALTER SESSION SET OPTIMIZER_MODE = FIRST_ROWS; Session altered. SQL> SHOW PARAMETER OPTIMIZER_MODE NAME TYP.. 더보기
[Tuning] 인덱스 매칭률 인덱스 매칭률 특정 테이블에 대해서 SQL 상의 주어진 조건으로 인해 사용될 수 있는 인덱스가 두 개 이상이라고 할 때 Optimizer는 조건에 가장 적절한 인덱스를 선택해서 사용해야 한다. 이와 같이 주어진 조건에 가장 적절한 인덱스를 선택해서 사용하고자 할 때 이용하는 원리이자 기준을 "인덱스 매칭률"이라고 한다. 인덱스 매칭률 = WHERE 절에서 1st컬럼 부터 연속된 컬럼에 대해 상수화 된 조건에 '='을 사용한 컬럼의 개수 / 인덱스를 구성하는 컬럼의 총 개수 Optimizer의 인덱스 선택 시 판단 절차 1) 주어진 조건에 대한 각 인덱스 별로 매칭률을 계산하여 매칭률이 높은 것을 우선적으로 선택 2) 인덱스 별 매칭률이 같을 경우 인덱스를 구성하는 컬럼의 개수가 많은 것을 우선적으로 선택.. 더보기
[Tuning] SQL Trace 사용자가 실행한 SQL 문의 실행계획과 실행시 읽기, 쓰기 등 작업 부하량 검사 ▶ 사전 작업 1. timed_statistics = true SQL> show parameter timed_statistics NAME TYPE VALUE ------------------------------------ ---------------------- ------------------------------ timed_statistics boolean TRUE 2. sql_trace = true, 세션단위로 작업할수 있기때문에 생략가능 SQL> show parameter sql_trace NAME TYPE VALUE ------------------------------------ ------------------.. 더보기