by-nc-sa     개발자, DBA가 함께 만들어가는 구루비 지식창고!

IO로서의 Cost




  • Cost는 I/O 기준인데 CPU 성능에 대한 수치가 없다면 어떻게 CPU Time을 계산 할 수 있는가?
  • Cost의 의미는 _OPTIMIZER_COST_MODEL parameter에 의해 결정
    • Default = CHOOSE
      • System Statistics가 있으면 CPU Model을 사용하고, System Statistics가 없으면 I/O Model을 사용하는 것. 즉, System Statistics가 없으면 Time기반으로 Cost를 계산하고 System Statistics가 없으면 I/O기반으로 Cost를 계산
  • System Statistics는 Oracle 9i에서 소개된 개념이며, DBA가 수동으로 수집해야 하는 정보이므로 기본적으로 존재 하지 않은 정보이다. 그리고 항상 I/O기준의 Cost를 사용하였다.
  • Oracle 10g는 Noworkload System Statistics로 System Statistics를 수집하지 않은 상황에서 Default값으로 사용할 목적으로 소개된 개념.
    • Oracle이 일을 하지 않은 상태(NoWorkload)의 System Statistics라는 개념
    • CPUSPEEDNW(CPU Speed), IOSEEKTIM(IO Seek Time), IOTFRSPEED(IO Transfer Speed)의 세가지 값으로 구성
      • CPUSPEEDNW값은 CPU Time을 계산하는데 사용
      • IOSEEKTIM값과 iotfrspeed값은 Single Block I/O Time과 Multi Block I/O Time을 계산하는데 사용
    • DBMS_STATS Package를 이용 별도로 수집 가능
      ??
      SQL> select * from sys.aux_stats$
      SNAME           PNAME                    PVAL1 PVAL2
      --------------- --------------- -------------- --------------------
      SYSSTATS_INFO   STATUS                         COMPLETED
      SYSSTATS_INFO   DSTART                         10-30-2008 22:46
      SYSSTATS_INFO   DSTOP                          10-30-2008 22:46
      SYSSTATS_INFO   FLAGS                     1.00
      SYSSTATS_MAIN   CPUSPEEDNW             1198.14
      SYSSTATS_MAIN   IOSEEKTIM                10.00
      SYSSTATS_MAIN   IOTFRSPEED             4096.00
      SYSSTATS_MAIN   SREADTIM
      SYSSTATS_MAIN   MREADTIM
      SYSSTATS_MAIN   CPUSPEED
      SYSSTATS_MAIN   MBRC
      SYSSTATS_MAIN   MAXTHR
      SYSSTATS_MAIN   SLAVETHR????
      
  • Noworkload System Statistics를 기본적으로 사용한다는 사실은 거꾸로 가능한 System Statistics를 수동으로 수집하는 것이 좋은 습관이라는 것을 의미(하지만 한계는 존재/따로 설명)
    • 수동으로 수집한 정보를 Workload System Statistics라고 부른다.

문서에 대하여

문서정보

Enter labels to add to this page:
Please wait 
Looking for a label? Just start typing.