트러블슈팅 오라클 퍼포먼스 2판 (2017년)
계측 0 0 48,116

by 구루비스터디 sys_context 계측 dbms_application [2023.09.08]


계측

모든 애플리케이션은 계측 되어야 함
  • 호출이나 라인 단위 정보는 코드 프로파일러에서 제공
  • 계측 코드는 업무 관련 오퍼레이션 및 구성요소(계층) 간 상호 작용에 집중
  • 주요 단계 마다 측정을 위해 코드의 중요한 위치에 계측 코드를 추가 해야 함

애플리케이션 코드

  • 이미 존재하는 로깅 프레임워크를 활용하여 계측 코드 구현
  • 아파치 로깅 서비스 프로젝트 : log4j


데이터베이스 호출

  • 사용자와 애플리케이션에 대한 정보를 DB 엔진에 전달 필요
  • DB는 세션을 통해 수행되는 SQL이 어느 어플리케이션의 어느 부분인지 알 수 없음


DB 세션에 동적으로 정보 설정
  • 클라이언트 식별자(client_identifier) : 클라이언트 식별하는 문자열 (64B), DB LINK 원격 세션에도 전달 됨
  • 클라이언트 정보(client_info) : 클라이언트 기술하는 문자열 (64B)
  • 모듈명(module) : 모듈 기술하는 문자열 (48B)** 액션명(action) : 액션 기술하는 문자열 (32B)


조회 방법
  • sys_context('userenv', 'client_identifier'), v$session.client_identifier
  • sys_context('userenv', 'client_info'), v$session.client_info
  • sys_context('userenv', 'module'), v$session.module
  • sys_context('userenv', 'action'), v$session.action


설정 방법
  • PL/SQL

BEGIN
  dbms_sesesion.set_identifier(client_id => 'helicon.antognini.ch');
  dbms_application.set_client_info(client_info => 'Linux x86_64');
  dbms_application.set_module(module_name => 'session_info.sql', action_name => 'test session information');
END;


OCI : OCIAttrSet 함수
  • OCI_ATTR_CLIENT_IDENTIFIER
  • OCI_ATTR_CLIENT_INFO
  • OCI_ATTR_MODULE
  • OCI_ATTR_ACTION


JDBC
  • JDBC 드라이버 12.1 버전 부터 제공


ODP.NET
  • OracleConnection 클래스 의 프로퍼티
  • ClientId
  • ClientInfo
  • ModuleName
  • ActionName


PHP : OCI8 확장 함수
  • oci_set_client_identifier
  • oci_set_client_info
  • oci_set_module_name
  • oci_set_action
"데이터베이스 스터디모임" 에서 2017년에 "전문가를 위한 트러블슈팅 오라클 퍼포먼스(Second Edition) " 도서를 스터디하면서 정리한 내용 입니다.

- 강좌 URL : http://www.gurubee.net/lecture/4336

- 구루비 강좌는 개인의 학습용으로만 사용 할 수 있으며, 다른 웹 페이지에 게재할 경우에는 출처를 꼭 밝혀 주시면 고맙겠습니다.~^^

- 구루비 강좌는 서비스 제공을 위한 목적이나, 학원 홍보, 수익을 얻기 위한 용도로 사용 할 수 없습니다.

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입