본문 바로가기
반응형

옵티마이저2

[Oracle] 옵티마이저 힌트 및 실행계획 옵티마이저는 쿼리문을 실행할 경우 다양한 실행 경로를 생성하고 비교하여 최적의 경로를 만들어준다. 자세한 내용은 아래 참고 포스팅을 참고하면 도움이 될것이다. 참고포스팅에서는 옵티마이저나 최적화에 대해서 알게 되는데 그럼 옵티마이저 힌트는 언제 어떻게 사용하는지에 대해서 알아볼 것이다. 옵티마이저 힌트는 우선 아래와 같은 방식으로 사용을 한다. select /*+ hint 기술 */ a, b, c from table; /*+ 과 */ 로 쌓여진 주석같은 구문 안에 작성을 한다. 사용하는 이유는 옵티마이저가 계획한 실행 경로가 상황에 따라 최적이 아닐 경우가 있다. 옵티마이저가 계산한 인덱스보다 효율적인 인덱스가 존재 스캔의 종류 변경(인덱스 / 풀 스캔) 옵티마이저가 계산한 조인보다 효율적인 조인이 존재.. 2022. 10. 1.
데이터베이스 실행계획 dbms에서 쿼리를 날리면 데이터베이스에서는 3단계를 거친다. sql 파싱 sql 최적화 sql 실행 순서를 거치는데 간단하게 설명을 하면 파싱부분에서는 syntax, semantic 등의 구문오류나 대상이 올바르게 존재하는지에 대해 판단을 내리고, 최적화 부분에서는 옵티마이저가 실행계획을 생성한다. 다음은 만들어진 실행 계획에 따라 실행을 한다. 여기서 말하는 실행 계획이란 무엇인가? sql을 데이터베이스에서 어떻게 처리할 것인가? 에 대한 것이다. 즉 해당 쿼리를 돌리기 위한 비용을 계산하고 어떤것이 가장 최적화 된 쿼리인지를 판단한다. (비용이란 컴퓨터의 자원을 얼마나 쓰는지를 뜻한다) 인덱스가 있는 경우라던가 pk기준으로 쿼리를 짜는등의 작업이 이루어 지면 대부분 옵티마이저가 최적의 실행계획을 작.. 2022. 1. 17.
반응형