2008/12/10 18:49
※ 이 글은 "실전 SQL 튜닝" 강의를 듣고 개인적인 의견과 함께 정리한 내용입니다.

CBO에서 Cost란?


 Cost란 말 그대로 비용입니다. DB에서 쿼리를 실행할 때 필요한 비용인거죠. 그리고 비용이 많이 들수록 DB의 응답속도와 부하는 늘어납니다. 그렇다면 이 Cost는 무엇을 근거로 산출되고 무엇을 Cost라고 하는 걸까요?

Cost는 무엇을 기준으로 나오는 값인가?


Jonathan Lewis says : The cost is the optimizer's best estimate of the time it will take to execute the statement.
=> 비용이란 optimizer가 sql 문장을 수행하는데 걸리는 시간의 최선의 예측치다.

여기서 수행하는데 걸리는 시간의 최선의 예측치는 간단하게 말하자면 "execution time = CPU time + I/O time" 이런 공식으로 계산했을 때 가장 빠른 시간을 말합니다. 하지만 Lock등이 발생해서 생기는 wait time은 계산에 들어가지 않습니다. 왜냐구요? 당연히 optimizer는 wait time등을 예측 할 수 없기 때문이죠.
I/O time은 다음과 같습니다. "I/O time =  Single Block I/O time(like index)  + Multi Block I/O time(like table full scan"



크리에이티브 커먼즈 라이선스
Creative Commons License
,