옵티마이저 이야기

2
0

모든 DB 서버에는 옵티마이저 라는 것이 내장되어 있습니다.

이 옵티마이저는 QUERY 가 실행이 되면,

이 QUERY 를 어떻게 결과를 낼지 해석을 해주는 엔진입니다.

이러한 옵티마이저의 종류에는 CBO 와 RBO 라는 단어가 있습니다.

  • 규칙기준 옵티마이저 (RBO, Rule Based Optimizer)
  • 비용기준 옵티마이저 (CBO, Cost Based Optimizer)

2종류가 있습니다.

규칙기반 옵티마이저 즉 RBO 는 RULE 에 의한 실행이 중점입니다.

인덱스 구조나, 비교연산자 우선순위 등을 기준으로 가장 최적의 실행결과를 선택하는 방법입니다.

기존점이 정확하다는 거죠

성능의 관점에서 보면 쿼리의 순서를 변경하는 정도로 어렵지 않은 방법으로 성능 향상이 가능 합니다만,

인덱스를 기준으로 사용하므로, 잘못된 인덱스 전략인 경우 속도가 오히려 안좋아질 수 있습니다.

향상에 한계점이 있다는 것입니다..

비용기반 옵티마이저 CBO 는 비용을 기준으로 실행을 합니다.

이 비용을 산정하기 위해서 사용하는 것이 통계 정보와 I/O, CPU 사용량 등을 기준으로 비용을 잡습니다.

오라클의 경우 7버전부터 CBO 가 도입이 되었고, 10g 버전부터는 RBO 가 완전히 사라지고 CBO 만 남게 됩니다.

MSSQL 의 경우는 처음부터 CBO 입니다.


0
0

저같은 SQL 고자를 위한 단비같은 팁에 항상 감사드려요~

  • bytes
    쉽게 적으려고 노력하고 있는데, 감이 안잡힐때가 많습니다. :) 1주일에 1회 이상은 적으려고 노력하고 있어요
0
0

6개월 전쯤 부터 읽지를 못한거 같네요~ ^^*
앞으로는 자주 들어 와서 못읽은 것 내용들까지 차곡차곡 공부해야 겠습니다~


총 2개 내용
의견 쓰기

쉐어드IT의 가입은 쉽고 간단합니다. 지금 하시고 IT관리자들과 의견을 함께 나누세요