컬럼으로 구성된 테이블의 메트릭 모니터링

모니터 요소는 컬럼으로 구성된 테이블에 대한 쿼리를 포함하는 데이터베이스 서버 워크로드를 이해하고 튜닝하는 데 도움이 될 수 있습니다. 모니터 인터페이스는 컬럼으로 구성된 테이블에 대한 쿼리와 관련된 워크로드를 모니터하는 데 필요한 대부분의 정보를 제공합니다.

주: 이름에 TEMP 또는 GBP 를 포함하는 모든 요소는 나중에 사용할 수 있도록 예약되어 있습니다.

버퍼 풀 효율을 평가하기 위한 모니터 요소

모니터 요소 세트를 사용하여 행으로 구성된 테이블과 별도로 컬럼으로 구성된 테이블에 대한 데이터 페이지 입출력을 모니터할 수 있습니다. 이러한 모니터 요소를 사용하여 워크로드가 행으로 구성된컬럼으로 구성된 테이블 둘 다에 영향을 줄 때 컬럼으로 구성된 테이블에 대한 액세스에 의해 구동되는 입출력 부분을 이해할 수 있습니다. 또한 이러한 요소는 컬럼으로 구성된 테이블을 별도의 테이블 스페이스에 배치할 것인지 또는 별도의 버퍼 풀을 사용할 것인지 여부를 결정하는 데 도움을 주어 시스템을 조정하는 데 도움을 줄 수 있습니다.

모니터 요소는 다음과 같습니다.
  • 총 논리 및 실제 컬럼으로 구성된 데이터 페이지 읽기 및 발견된 페이지에 대한 카운터:
    • POOL_COL_L_READS
    • POOL_TEMP_COL_L_READS
    • POOL_COL_P_READS
    • POOL_TEMP_COL_P_READS
    • POOL_COL_LBP_PAGES_FOUND
  • 컬럼으로 구성된 데이터 페이지 쓰기에 대한 카운터:
    • POOL_COL_WRITES
  • 비동기 컬럼으로 구성된 데이터 페이지 읽기 및 쓰기와 발견된 페이지에 대한 카운터:
    • POOL_ASYNC_COL_READS
    • POOL_ASYNC_COL_READ_REQS
    • POOL_ASYNC_COL_WRITES
    • POOL_ASYNC_COL_LBP_PAGES_FOUND
  • 모니터 사용 목록을 통해 보고되는 테이블당 및 테이블당 명령문당 컬럼으로 구성된 데이터 페이지 읽기에 대한 카운터:
    • OBJECT_COL_L_READS
    • OBJECT_COL_P_READS
    • OBJECT_COL_GBP_L_READS
    • OBJECT_COL_GBP_P_READS
    • OBJECT_COL_GBP_INVALID_PAGES
    • OBJECT_COL_LBP_PAGES_FOUND
    • OBJECT_COL_GBP_INDEP_PAGES_FOUND_IN_LBP

컬럼으로 구성된 테이블의 데이터에 대한 프리페치 요청을 모니터하기 위한 모니터 요소

컬럼으로 구성된 테이블에 액세스하는 쿼리에 대한 프리페치 논리는 쿼리 실행 중에 액세스되는 각 컬럼에 대해 각 스레드가 읽을 페이지만 비동기적으로 페치하는 데 사용됩니다. 특정 컬럼의 페이지가 버퍼 풀에서 계속 사용 가능하면, 페이지를 동기식으로 읽을 때까지 해당 컬럼의 프리페치가 사용 안함으로 설정됩니다. 동기식으로 읽으면 해당 컬럼의 프리페치가 다시 사용으로 설정됩니다.

한 스레드에서 동시에 프리페치할 수 있는 페이지 수가 액세스 중인 테이블스페이스의 프리페치 크기로 제한되더라도, 여러 스레드가 동시에 페이지를 프리페치할 수 있습니다.

모니터 요소는 프리페처에 제출된 컬럼으로 구성된 테이블의 데이터에 대한 요청 볼륨 및 페이지가 메모리에 있기 때문에 프리페처가 읽기를 건너뛴 페이지 수를 추적하는 데 도움이 될 수 있습니다. 컬럼으로 구성된 테이블의 데이터를 효율적으로 프리페치하는 것은 데이터 스캔의 입출력 비용을 줄이는 데 중요합니다.

다음 모니터 요소를 사용하여 컬럼으로 구성된 테이블의 데이터에 대한 프리페치 요청을 모니터링할 수 있습니다.
  • POOL_QUEUED_ASYNC_COL_REQS
  • POOL_QUEUED_ASYNC_TEMP_COL_REQS
  • POOL_QUEUED_ASYNC_COL_PAGES
  • POOL_QUEUED_ASYNC_TEMP_COL_PAGES
  • POOL_FAILED_ASYNC_COL_REQS
  • POOL_FAILED_ASYNC_TEMP_COL_REQS
  • SKIPPED_PREFETCH_COL_P_READS
  • SKIPPED_PREFETCH_TEMP_COL_P_READS
  • SKIPPED_PREFETCH_UOW_COL_P_READS
  • SKIPPED_PREFETCH_UOW_TEMP_COL_P_READS

열 데이터 크기를 측정하기 위한 모니터 요소

컬럼으로 구성된 테이블은 컬럼 데이터가 저장되는 새 테이블 오브젝트와 연관됩니다.

다음 모니터 요소는 열 데이터의 크기를 추정하는 데 도움이 됩니다.
  • COL_OBJECT_L_SIZE
  • COL_OBJECT_P_SIZE
  • COL_OBJECT_L_PAGES

처음 두 요소는 컬럼으로 구성된 데이터 오브젝트의 논리적 및 물리적 크기를 정확하게 반영하지만 사용 중인 공간을 계산해야 하므로 판별하는 데 비용이 더 많이 듭니다. 이러한 요소는 ADMIN_GET_TAB_INFO 테이블 함수에서 보고합니다. COL_OBJECT_L_PAGES 요소는 기존의 DATA_OBJECT_L_PAGES 요소와 유사하며, 이 추정치가 부정확하더라도 추정 크기에 대해 저렴한 대안(페이지 크기로 곱한 페이지 수)을 제공합니다.

데이터 구성에 대한 정보를 보고하기 위한 모니터 요소

TAB_ORGANIZATION 모니터 요소는 테이블에 있는 데이터 구성에 대한 정보를 보고하고 MON_GET_TABLE 테이블 함수에서 리턴됩니다.

소비된 시간을 측정하기 위한 모니터 요소

소요 시간 모니터 요소 는 데이터베이스 관리자가 컬럼으로 구성된 테이블을 처리하는 데 소요되는 시간에 대한 정보를 제공합니다. 소요 시간 요소는 대략적으로 대기 시간 요소와 처리 시간 요소로 분류됩니다.

다음 모니터 요소는 소요 시간 계층 구조에 추가됩니다.
  • TOTAL_COL_TIME
  • TOTAL_COL_PROC_TIME
  • TOTAL_COL_EXECUTIONS

이러한 세 개의 모니터 요소는 모든 컬럼으로 구성된 처리 서브에이전트에서 컬럼으로 구성된 데이터 처리에 소요된 총 시간을 계산합니다. TOTAL_COL_TIME 요소는 모든 컬럼으로 구성된 처리 서브에이전트에 대한 총 경과 시간을 나타냅니다. TOTAL_COL_PROC_TIME 요소는 컬럼으로 구성된 처리 서브에이전트가 측정된 대기 시간 (예: 잠금 대기 또는 입출력) 에 유휴 상태가 아닌 총 경과 시간의 서브세트를 나타냅니다. TOTAL_COL_EXECUTIONS 요소는 컬럼으로 구성된 테이블의 데이터가 명령문 실행 중에 액세스된 총 횟수를 나타냅니다.

TOTAL_COL_TIME의 상위 요소는 TOTAL_SECTION_TIME입니다. TOTAL_COL_PROC_TIME의 상위 요소는 TOTAL_SECTION_PROC_TIME입니다. 상위 요소는 요청과 활동 차원 모두에서 동일합니다.

해시된 GROUP BY 연산자의 모니터 요소

컬럼으로 구성된 테이블의 GROUP BY 연산자는 그룹화 방법으로 해싱을 사용합니다. 해시된 GROUP BY 연산자는 정렬 메모리를 이용합니다. 다음 모니터 요소는 해시된 GROUP BY 연산 동안 정렬 메모리 소비에 대한 모니터링을 지원합니다. 이러한 요소는 기타 정렬 메모리 이용자의 기존 모니터 요소와 유사합니다.
  • TOTAL_HASH_GRPBYS
  • ACTIVE_HASH_GRPBYS
  • HASH_GRPBY_OVERFLOWS
  • POST_THRESHOLD_HASH_GRPBYS
  • ACTIVE_HASH_GRPBYS_TOP

종횡배열(columnar) 벡터 메모리의 모니터 요소

종횡배열(columnar) 벡터 메모리는 컬럼으로 구성된 테이블에 저장된 데이터의 벡터 처리에 사용되는 정렬 힙 메모리입니다. Db2 칸쿤 릴리스 10.5.0.4 에서 다음 모니터 요소를 사용하면 정렬 소비자가 사용하는 컬럼 벡터 메모리 양을 모니터링할 수 있습니다:
  • ACTIVE_COL_VECTOR_CONSUMERS
  • ACTIVE_COL_VECTOR_CONSUMERS_TOP
  • POST_THRESHOLD_COL_VECTOR_CONSUMERS
  • TOTAL_COL_VECTOR_CONSUMERS

다른 차원에서 수집되는 요청 메트릭을 얻기 위한 모니터 인터페이스

다음 모니터 인터페이스는 요청 메트릭을 보고합니다.
  • MON_GET_DATABASE
  • MON_GET_DATABASE_DETAILS
  • MON_GET_WORKLOAD
  • MON_GET_WORKLOAD_DETAILS
  • MON_GET_UNIT_OF_WORK
  • MON_GET_UNIT_OF_WORK_DETAILS
  • MON_GET_SERVICE_SUBCLASS
  • MON_GET_SERVICE_SUBCLASS_DETAILS
  • MON_GET_CONNECTION
  • MON_GET_CONNECTION_DETAILS
  • EVMON_FORMAT_UE_TO_XML
  • MON_FORMAT_XML_METRICS_BY_ROW
  • 작업 단위(UOW) 이벤트 모니터
  • 통계 이벤트 모니터
모든 요청 메트릭 인터페이스는 다음 모니터 요소를 리턴합니다.
  • POOL_COL_L_READS
  • POOL_TEMP_COL_L_READS
  • POOL_COL_P_READS
  • POOL_TEMP_COL_P_READS
  • POOL_COL_LBP_PAGES_FOUND
  • POOL_COL_WRITES
  • POOL_COL_GBP_L_READS
  • POOL_COL_GBP_P_READS
  • POOL_COL_GBP_INVALID_PAGES
  • POOL_COL_GBP_INDEP_PAGES_FOUND_IN_LBP
  • POOL_QUEUED_ASYNC_COL_REQS
  • POOL_QUEUED_ASYNC_TEMP_COL_REQS
  • POOL_QUEUED_ASYNC_COL_PAGES
  • POOL_QUEUED_ASYNC_TEMP_COL_PAGES
  • POOL_FAILED_ASYNC_COL_REQS
  • POOL_FAILED_ASYNC_TEMP_COL_REQS
  • TOTAL_COL_TIME
  • TOTAL_COL_PROC_TIME
  • TOTAL_COL_EXECUTIONS
이러한 요소 각각의 데이터 유형은 BIGINT입니다. 이러한 요소는 REQUEST METRICS 제어가 BASE로 설정될 때 보고됩니다. MON_GET_DATABASE 및 MON_GET_DATABASE_DETAILS 인터페이스의 경우, REQUEST METRICS는 TOTAL_COL_TIME, TOTAL_COL_PROC_TIME 및 TOTAL_COL_EXECUTIONS 요소의 콜렉션만 제어합니다. 기타 요소는 OBJECT METRICS 제어가 BASE로 설정될 때 보고됩니다.

활동 메트릭을 가져오기 위한 모니터 인터페이스

활동 메트릭은 SQL문 실행 도중 측정된 요청 메트릭의 서브세트입니다.

다음 모니터 인터페이스는 활동 메트릭을 보고합니다.
  • MON_GET_ACTIVITY
  • MON_GET_ACTIVITY_DETAILS
  • MON_GET_PKG_CACHE_STMT
  • MON_GET_PKG_CACHE_STMT_DETAILS
  • EVMON_FORMAT_UE_TO_XML
  • MON_FORMAT_XML_METRICS_BY_ROW
  • 활동 이벤트 모니터
  • 패키지 캐시 이벤트 모니터
모든 활동 메트릭 인터페이스는 다음 모니터 요소를 리턴합니다.
  • POOL_COL_L_READS
  • POOL_TEMP_COL_L_READS
  • POOL_COL_P_READS
  • POOL_TEMP_COL_P_READS
  • POOL_COL_LBP_PAGES_FOUND
  • POOL_COL_WRITES
  • POOL_COL_GBP_L_READS
  • POOL_COL_GBP_P_READS
  • POOL_COL_GBP_INVALID_PAGES
  • POOL_COL_GBP_INDEP_PAGES_FOUND_IN_LBP
  • POOL_QUEUED_ASYNC_COL_REQS
  • POOL_QUEUED_ASYNC_TEMP_COL_REQS
  • POOL_QUEUED_ASYNC_COL_PAGES
  • POOL_QUEUED_ASYNC_TEMP_COL_PAGES
  • POOL_FAILED_ASYNC_COL_REQS
  • POOL_FAILED_ASYNC_TEMP_COL_REQS
  • TOTAL_COL_TIME
  • TOTAL_COL_PROC_TIME
  • TOTAL_COL_EXECUTIONS
이러한 요소 각각의 데이터 유형은 BIGINT입니다. 이러한 요소는 ACTIVITY METRICS 제어가 BASE로 설정될 때 보고됩니다.

데이터베이스 오브젝트 메트릭을 가져오기 위한 모니터 인터페이스

오브젝트 메트릭 인터페이스는 특정 데이터베이스 오브젝트 또는 전체 데이터베이스에 대한 모니터 요소를 보고합니다.

  • MON_GET_DATABASE, MON_GET_DATABASE_DETAILS, MON_GET_BUFFERPOOL 및 MON_GET_TABLESPACE 테이블 함수는 다음 모니터 요소를 리턴합니다.
    • POOL_COL_L_READS
    • POOL_TEMP_COL_L_READS
    • POOL_COL_P_READS
    • POOL_TEMP_COL_P_READS
    • POOL_COL_LBP_PAGES_FOUND
    • POOL_COL_WRITES
    • POOL_ASYNC_COL_READS
    • POOL_ASYNC_COL_READ_REQS
    • POOL_ASYNC_COL_WRITES
    • POOL_ASYNC_COL_LBP_PAGES_FOUND
    • POOL_COL_GBP_L_READS
    • POOL_COL_GBP_P_READS
    • POOL_COL_GBP_INVALID_PAGES
    • POOL_COL_GBP_INDEP_PAGES_FOUND_IN_LBP
    • POOL_ASYNC_COL_GBP_L_READS
    • POOL_ASYNC_COL_GBP_P_READS
    • POOL_ASYNC_COL_GBP_INVALID_PAGES
    • POOL_ASYNC_COL_GBP_INDEP_PAGES_FOUND_IN_LBP
    • POOL_QUEUED_ASYNC_COL_REQS
    • POOL_QUEUED_ASYNC_TEMP_COL_REQS
    • POOL_QUEUED_ASYNC_COL_PAGES
    • POOL_QUEUED_ASYNC_TEMP_COL_PAGES
    • POOL_FAILED_ASYNC_COL_REQS
    • POOL_FAILED_ASYNC_TEMP_COL_REQS
    • SKIPPED_PREFETCH_COL_P_READS
    • SKIPPED_PREFETCH_TEMP_COL_P_READS
    • SKIPPED_PREFETCH_UOW_COL_P_READS
    • SKIPPED_PREFETCH_UOW_TEMP_COL_P_READS
    이러한 요소 각각의 데이터 유형은 BIGINT입니다. 이러한 요소는 OBJECT METRICS 제어가 BASE로 설정될 때 보고됩니다.
  • MON_GET_TABLE 테이블 함수는 다음 모니터 요소를 리턴합니다.
    • COL_OBJECT_L_PAGES
    • NUM_COLUMNS_REFERENCED
    • OBJECT_COL_L_READS
    • OBJECT_COL_P_READS
    • OBJECT_COL_GBP_L_READS
    • OBJECT_COL_GBP_P_READS
    • OBJECT_COL_GBP_INVALID_PAGES
    • OBJECT_COL_LBP_PAGES_FOUND
    • OBJECT_COL_GBP_INDEP_PAGES_FOUND_IN_LBP
    • SECTION_EXEC_WITH_COL_REFERENCES
    • TAB_ORGANIZATION
    이러한 요소 각각의 데이터 유형은 BIGINT입니다. TAB_ORGANIZATION 및 COL_OBJECT_L_PAGES 요소는 항상 보고됩니다. 기타 요소는 OBJECT METRICS 제어가 EXTENDED로 설정될 때 보고됩니다.
  • MON_GET_TABLE_USAGE_LIST 테이블 함수는 다음 모니터 요소를 리턴합니다.
    • OBJECT_COL_L_READS
    • OBJECT_COL_P_READS
    • OBJECT_COL_GBP_L_READS
    • OBJECT_COL_GBP_P_READS
    • OBJECT_COL_GBP_INVALID_PAGES
    • OBJECT_COL_LBP_PAGES_FOUND
    • OBJECT_COL_GBP_INDEP_PAGES_FOUND_IN_LBP
    이러한 요소 각각의 데이터 유형은 BIGINT입니다. 이러한 요소는 OBJECT METRICS 제어가 EXTENDED로 설정될 때 보고됩니다.
  • ADMIN_GET_TAB_INFO 테이블 함수는 다음 모니터 요소를 리턴합니다.
    • COL_OBJECT_L_SIZE
    • COL_OBJECT_P_SIZE
  • 다음 기존 메트릭은 컬럼으로 구성된 테이블에 적용되지 않으므로 널 (NULL) 을 리턴합니다.
    • LARGE_RIDS
    • LARGE_SLOTS

적중 비율 메트릭을 얻기 위한 관리 뷰 인터페이스

관리 뷰는 모니터 데이터에 공통 계산을 수행하는 모니터 인터페이스에서 빌드되는 사전 정의된 뷰입니다.

MON_BP_UTILIZATION 관리 뷰는 다음 모니터 요소를 리턴합니다.
  • COL_PHYSICAL_READS
  • COL_HIT_RATIO_PERCENT
  • GBP_COL_HIT_RATIO_PERCENT
MON_TBSP_UTILIZATION 관리 뷰는 다음 모니터 요소를 리턴합니다.
  • COL_PHYSICAL_READS
  • COL_HIT_RATIO_PERCENT
  • GBP_COL_HIT_RATIO_PERCENT
MON_WORKLOAD_SUMMARY, MON_SERVICE_SUBCLASS_SUMMARY, MON_CONNECTION_SUMMARY 및 MON_DB_SUMMARY 관리 뷰는 다음 모니터 요소를 리턴하며, COL 풀 메트릭을 고려하도록 수정됩니다.
  • TOTAL_BP_HIT_RATIO_PERCENT
  • TOTAL_GBP_HIT_RATIO_PERCENT

모니터 데이터를 포함하는 보고서를 생성하는 변경된 관리 프로시저

다음 관리 프로시저는 COL 풀 모니터 요소를 포함하도록 갱신됩니다.
  • MONREPORT.DBSUMMARY
  • MONREPORT.CONNECTION

특정 서비스 클래스에서 실행되는 에이전트에 대한 정보를 얻기 위한 변경된 모니터 인터페이스

MON_GET_AGENT 함수는 특정 서비스 클래스에서 실행 중인 에이전트에 대한 정보를 표시합니다. 컬럼으로 구성된 테이블에서 병렬 쿼리 처리를 수행하는 에이전트를 설명하기 위해 다음과 같이 변경되었습니다.
  • AGENT_TYPE: 컬럼으로 구성된 테이블을 처리하는 에이전트에 대해 SMPSUBAGENT 유형이 리턴됩니다.
  • AGENT_SUBTYPE: 컬럼으로 구성된 테이블을 처리하는 SMP 에이전트를 식별하기 위해 새 COLUMNAR 부속 유형이 리턴됩니다.
  • REQUEST_TYPE: COLUMNAR 부속 유형을 가진 에이전트는 DSS 또는 SMP 부속 유형을 가진 에이전트와 같은 동작을 수행합니다. 특히 서브섹션 번호가 0이 아닌 경우 리턴되는 값은 SUBSECTION:subsection_number입니다. 그렇지 않으면 널 값이 리턴됩니다.