V$CELL_STATE 뷰

2021. 12. 18.·Exadata

개요

V$CELL_STATE 뷰는 셀 서버 네트워크 계층 정보, 스케줄링 계층 정보, 셀 서버 구성 정보와 같은 셀 서버의 주요 성능 통계를 표시합니다.

 

칼럼 구성은 아래와 같습니다. statistics_type 칼럼에 통계 유형, statistics_value 칼럼에 통계 값이 저장되어 있습니다. 통계 유형에 따라 상이한 XML 포맷의 통계 값이 저장되어 있습니다. 

 이름             널? 유형
 ---------------- --- --------------
 CELL_NAME            VARCHAR2(1024)
 STATISTICS_TYPE      VARCHAR2(15)   -- 통계 유형
 OBJECT_NAME          VARCHAR2(1024)
 STATISTICS_VALUE     CLOB           -- 통계 값(XML)
 CON_ID               NUMBER

 

통계 유형은 아래와 같습니다. 참고로 통계 유형에 대한 설명은 Expert Oracle Exadata, Second Edition을 참조했습니다.

  • CAPABILITY: cell software capabilities
  • CELL: similar information as in the cellsrvstat output
  • CLIENTDES
  • DBDES
  • FLASHLOG: very detailed information about the use of the FLASHLOG feature
  • IOREASON: breaks down I/O on the cell into every category imaginable
  • LOCK: breaking down mutex waits per object type in the cell
  • NPHYSDISKS: lists number of physical disks per cell
  • OFLGROUP: offload server statistics
  • OFLGRPDES: information about the various phases of a Smart Scan
  • OSSCONFIG
  • PHASESTAT
  • PREDIO: contains information about how Exadata dealt with Smart Scans
  • RCVPORT: contains detail about network traffic received
  • SENDPORT: contains detail about network traffic sent
  • THREAD: thread-related information about cellsrv’s worker threads

 

통계 값은 아래의 쿼리로 조회할 수 있습니다. V$CELL_STATE 뷰는 XML 구조가 복잡해 통계 유형에 따라 다양한 형식의 쿼리로 조회해야 합니다. XML Viewer로 XML 구조를 분석하여 쿼리를 변경하면 필요한 통계값을 조회할 수 있습니다.

 

value 형식

EXTRACTVALUE 함수로 단일 값을 조회합니다.

-- 1
SELECT   EXTRACTVALUE(XMLTYPE (b.confval), '/cli-output/context/@cell') AS cell
       , EXTRACTVALUE(XMLTYPE (a.statistics_value), '/predio_stats/stats[@type="predicateio"]/stat[@name="current_cell_cpu_utilization"]')
         AS value
    FROM v$cell_state a
       , v$cell_config b
   WHERE a.statistics_type = 'PREDIO'
     AND b.cellname = a.cell_name
     AND b.conftype = 'CELL'
ORDER BY cell;

CELL     VALUE
-------- -----
celadm01     #
celadm02     #
...
# 행이 선택되었습니다.

 

name, value 형식

XMLTABLE 함수로 다중 값을 조회합니다.

-- 2
SELECT   EXTRACTVALUE(XMLTYPE (b.confval), '/cli-output/context/@cell') AS cell
       , c.position
       , c.name
       , c.value
    FROM v$cell_state a
       , v$cell_config b
       , XMLTABLE ('/predio_stats/stats[@type="predicateio"]/stat'
             PASSING XMLTYPE (a.statistics_value)
             COLUMNS
                 position FOR ORDINALITY
               , name  VARCHAR2(255) PATH '@name'
               , value NUMBER        PATH '.') c
   WHERE a.statistics_type = 'PREDIO'
     AND b.cellname = a.cell_name
     AND b.conftype = 'CELL'
  -- AND c.name = 'current_cell_cpu_utilization'
ORDER BY cell
       , c.position;

CELL     POSITION NAME                       VALUE
-------- -------- -------------------------- -----
celadm01        1 num_active_predicate_disks     #
celadm01        2 total_predicate_disks          #
...
# 행이 선택되었습니다.

 

type, name, value 형식

2개의 XMLTABLE 함수로 2단계 다중 값을 조회합니다.

-- 3
SELECT   EXTRACTVALUE(XMLTYPE (b.confval), '/cli-output/context/@cell') AS cell
       , c.position AS type_position
       , c.type
       , d.position AS name_position
       , d.name
       , d.value
    FROM v$cell_state a
       , v$cell_config b
       , XMLTABLE ('/predio_stats/stats[@type != ""]'
             PASSING XMLTYPE (a.statistics_value)
             COLUMNS
                 position FOR ORDINALITY
               , type  VARCHAR2(256) PATH '@type'
               , value XMLTYPE       PATH '.') c
       , XMLTABLE ('/stats/stat'
             PASSING c.value
             COLUMNS
                 position FOR ORDINALITY
               , name  VARCHAR2(256) PATH '@name'
               , value NUMBER        PATH '.') d
   WHERE a.statistics_type = 'PREDIO'
     AND b.cellname = a.cell_name
     AND b.conftype = 'CELL'
ORDER BY cell
       , c.position
       , d.position;

CELL     TYPE_POSITION TYPE                 NAME_POSITION NAME                  VALUE
-------- ------------- -------------------- ------------- --------------------- -----
...
celadm01             4 storidx_global_stats             1 nm_io_saved               #
celadm01             4 storidx_global_stats             2 nm_sparse_bytes_saved     #
...
# 행이 선택되었습니다.

 

id, group, name, value 형식

3개의 XMLTABLE 함수로 3단계 다중 값을 조회합니다.

-- 4
SELECT   EXTRACTVALUE(XMLTYPE (b.confval), '/cli-output/context/@cell') AS cell
       , c.position AS id_position
       , c.id
       , d.position AS group_position
       , d.group_
       , e.position AS name_position
       , e.name
       , e.value
    FROM v$cell_state a
       , v$cell_config b
       , XMLTABLE ('/predio_stats/stats[@type = "storidx_global_stats"]/ocl_si_stats/ocl_si_group[@id != ""]'
             PASSING XMLTYPE (a.statistics_value)
             COLUMNS
                 position FOR ORDINALITY
               , id    VARCHAR2(256) PATH '@id'
               , value XMLTYPE       PATH '.') c
       , XMLTABLE ('/ocl_si_group/ocl_si_stat_group[@group != ""]'
             PASSING c.value
             COLUMNS
                 position FOR ORDINALITY
               , group_ VARCHAR2(256) PATH '@group'
               , value  XMLTYPE       PATH '.') d
       , XMLTABLE ('/ocl_si_stat_group/stat'
             PASSING d.value
             COLUMNS
                 position FOR ORDINALITY
               , name  VARCHAR2(256) PATH '@name'
               , value NUMBER        PATH '.') e
   WHERE a.statistics_type = 'PREDIO'
     AND b.cellname = a.cell_name
     AND b.conftype = 'CELL'
ORDER BY cell
       , c.position
       , d.position
       , e.position;

CELL     ID_POSITION ID GROUP_POSITION GROUP_ NAME_POSITION NAME           VALUE
-------- ----------- -- -------------- ------ ------------- -------------- -----
celadm01           1 1               1 misc               1 pin_attempts       #
celadm01           1 1               1 misc               2 pin_from_cache     #
...
# 행이 선택되었습니다.
저작자표시 비영리 변경금지 (새창열림)
'Exadata' 카테고리의 다른 글
  • ExaWatcher Charts
  • Exadata Flash Cache 내용 조회
  • V$CELL_CONFIG_INFO 뷰
  • V$CELL_CONFIG 뷰
정희락
정희락
2007년부터 Oracle Database 성능 최적화에 주력해 왔으며, 현재 한국오라클 Engineered Systems Solution Engineering 팀에서 Solution Engineer로 근무하고 있습니다. 이 블로그는 개인적인 연구 목적으로 운영되며, Oracle 사의 공식 입장을 대변하지 않습니다.
  • 정희락
    TunA
    정희락
  • 전체
    오늘
    어제
    • 분류 전체보기 (199)
      • Oracle (171)
        • SQL (33)
        • PLSQL (10)
        • Performance (74)
        • Administration (37)
        • Installation (3)
        • Utilities (1)
        • JSON (8)
        • Vector (5)
      • Exadata (15)
      • SQL*Plus (2)
      • Linux (5)
      • Resources (6)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 도서

    • 불친절한 SQL 프로그래밍
    • 불친절한 PL/SQL 프로그래밍
  • 링크

    • Connor McDonald
    • Frits Hoogland
    • Jonathan Lewis
    • Julian Dontcheff
    • Julian Dyke
    • Kun Sun
    • Maria Colgan
    • Martin Bach
    • Mike Dietrich
    • Tanel Poder
  • 공지사항

  • 인기 글

  • 태그

    12c
    19c
    21c
    23ai
    case study
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
정희락
V$CELL_STATE 뷰
상단으로

티스토리툴바