본문 바로가기
Database/Oracle

[ORACLE] ALL_PROBE_OBJECTS 뷰를 활용한 소스 코드 추적 및 디버깅

by Papa Martino V 2025. 6. 27.
728x90

오라클 ALL_PROBE_OBJECTS 뷰를 활용한 소스 코드 추적 및 디버깅
[Oracle] ALL_PROBE_OBJECTS

 

오라클 데이터베이스는 개발자와 DBA가 PL/SQL 프로그램의 동작을 추적하고 분석할 수 있도록 다양한 메타데이터 뷰를 제공합니다. 이 중 ALL_PROBE_OBJECTSPL/SQL Hierarchical Profiler 또는 DBMS_PROFILER와 같은 디버깅 툴을 사용할 때 연관된 객체 정보를 조회하는 데 사용되는 중요한 뷰입니다. 이 글에서는 ALL_PROBE_OBJECTS 뷰의 구조, 사용 목적, 실무 적용 사례, 관련 뷰와의 차이점 등을 집중적으로 다루어 오라클 기반 소스 코드 디버깅을 체계적으로 이해할 수 있도록 돕습니다.

1. ALL_PROBE_OBJECTS 개요

ALL_PROBE_OBJECTS는 오라클에서 디버깅/트레이싱과 관련된 객체들에 대한 메타정보를 제공합니다. 이 뷰는 사용자가 소유하거나 권한을 가진 프로시저, 함수, 트리거 등에 대해, 트레이스 및 프로파일링을 위해 접근 가능한 정보를 제공합니다.

1-1. 주요 컬럼 설명

  • OBJECT_ID: 추적 대상 객체의 내부 ID
  • OBJECT_NAME: PL/SQL 오브젝트 이름 (예: 프로시저, 함수 등)
  • OBJECT_TYPE: 오브젝트 유형 (FUNCTION, PROCEDURE, PACKAGE 등)
  • OWNER: 객체 소유자 (스키마 이름)
  • SUBPROGRAM_ID: 서브 프로그램 ID (특정 함수나 프로시저 내에서 구분)

이 뷰는 소스코드 분석 및 성능 진단 시, 각 코드 단위에 대한 메타 정보를 기반으로 상세 추적을 가능하게 합니다.

2. 실무에서의 활용 예제

아래는 현재 사용자가 접근할 수 있는 프로파일링 대상 객체를 조회하는 예시입니다.

SELECT object_name, object_type, owner
FROM all_probe_objects
WHERE object_type IN ('PROCEDURE', 'FUNCTION')
ORDER BY owner, object_name;

이 쿼리를 통해 프로파일링이 가능한 모든 함수 및 프로시저를 나열할 수 있으며, 트레이스 또는 분석 대상 후보를 선정하는 데 유용하게 활용됩니다.

3. 디버깅 및 프로파일링과의 연관성

오라클에서 PL/SQL의 성능을 분석할 때 사용되는 대표적인 도구는 다음과 같습니다:

  • DBMS_PROFILER: 코드 실행 중 각 라인의 실행 횟수와 시간 기록
  • PL/SQL Hierarchical Profiler: 함수 호출의 계층 구조 및 시간 분포 시각화

이런 도구들은 내부적으로 ALL_PROBE_OBJECTS를 참조하거나 연계된 데이터 수집을 통해 디버깅 정보를 구성하게 됩니다.

4. 관련 뷰와의 비교

뷰 이름 설명 주요 컬럼 활용 목적
ALL_PROBE_OBJECTS 프로파일링 가능한 오브젝트 정보 OBJECT_NAME, OBJECT_TYPE, SUBPROGRAM_ID 프로파일링 대상 식별
ALL_SOURCE 사용 가능한 모든 PL/SQL 소스코드 NAME, TEXT, TYPE 코드 본문 확인
DBA_HIST_ACTIVE_SESS_HISTORY 세션 히스토리 기반 성능 분석 SAMPLE_TIME, SQL_ID, SESSION_ID 세션 성능 이슈 추적

5. 실무 팁 및 고려사항

  • 컴파일 최적화: 프로파일링을 정확히 수행하기 위해서는 오브젝트가 DEBUG 옵션으로 컴파일되어 있어야 합니다.
  • 보안 접근 제한: ALL_PROBE_OBJECTS는 접근 권한이 있는 객체만 보여주므로 DBA 권한이 필요할 수도 있습니다.
  • 결과 연계 분석: 이 뷰의 정보를 DBMS_PROFILER 결과와 연계하면 성능 병목 구간을 더욱 정확히 진단할 수 있습니다.
  • 버전 호환성 확인: 일부 Oracle 버전에서는 이 뷰가 기본적으로 비활성화되어 있거나 제한적으로 제공될 수 있으므로 버전 확인이 필요합니다.

6. 결론

ALL_PROBE_OBJECTS 뷰는 오라클의 소스 코드 디버깅 및 성능 분석에서 중요한 역할을 하는 도구입니다. 특히 복잡한 패키지 구조를 가진 PL/SQL 프로젝트나 프로파일링 도구를 활용한 진단 환경에서는 이 뷰의 정보가 매우 유용합니다. 실무에서는 이 뷰를 통해 추적 가능한 오브젝트를 빠르게 식별하고, 전체 흐름을 분석하여 성능 개선의 기초 자료로 삼을 수 있습니다.

7. 참고 문헌 및 출처

  • Oracle Database 19c Reference: ALL_PROBE_OBJECTS
  • Oracle PL/SQL Packages and Types Reference
  • 『오라클 PL/SQL 성능 최적화 가이드』, 백종도 저, 한빛미디어
728x90