Autonomous Database on Dedicated Exadata Infrastructure에서 SQL 추적 사용
SQL 추적을 Autonomous Database on Dedicated Exadata Infrastructure와 함께 사용하면 애플리케이션의 로드가 많은 SQL 문과 같이 과도한 데이터베이스 작업 로드의 소스를 식별할 수 있습니다.
SQL Trace 정보
응용 프로그램 작업이 예상보다 오래 걸리는 경우 구문 분석, 실행 및 패치(fetch) 단계에서 해당 SQL 문에 소요된 시간과 같은 세부 정보를 포함하여 이 작업의 일부로 실행된 모든 SQL 문에 대한 추적을 얻으면 성능 문제의 원인을 식별하고 해결하는 데 도움이 됩니다. Autonomous Database에서 SQL 추적을 사용하여 이를 달성할 수 있습니다.
- SQL Trace file을 저장하기 위한 데이터베이스 구성부터 시작합니다. 자세한 내용은 Autonomous Database에서 SQL 추적 구성을 참조하십시오.
- 그런 다음 SQL Trace를 활성화합니다. Enable SQL Tracing on Autonomous Database을 참조하십시오.
주:
SQL 추적을 활성화하면 추적 수집이 활성화되어 있는 동안 세션에 대한 응용 프로그램 성능이 저하될 수 있습니다. 이 성능 영향은 추적 데이터 수집 및 저장 오버헤드로 인해 발생할 수 있습니다. - SQL 추적 데이터 수집을 정지하려면 SQL 추적을 비활성화해야 합니다. Disable SQL Tracing을 참조하십시오.
- SQL 추적을 사용 안함으로 설정하면 추적이 사용으로 설정된 상태로 세션이 실행되는 동안 수집된 추적 데이터가 세션의
SESSION_CLOUD_TRACE
뷰 및 버킷의 추적 파일에 기록됩니다. 이 뷰는 SQL 추적을 설정하는 동안 구성합니다. 추적 데이터를 볼 수 있는 두 가지 옵션이 있습니다.- 클라우드 객체 저장소에 저장된 추적 파일에서 SQL 추적 데이터를 보고 분석합니다. 자세한 내용은 Autonomous Database의 Cloud Object Store에 저장된 추적 파일 보기를 참조하십시오.
SESSION_CLOUD_TRACE
뷰에 저장된 SQL Trace 데이터를 보고 분석합니다. 자세한 내용은 View Trace Data in SESSION_CLOUD_TRACE View on Autonomous Database를 참조하십시오.
Autonomous Database에서 SQL 추적 사용
주:
SQL 추적을 활성화하면 추적 수집이 활성화되어 있는 동안 세션에 대한 응용 프로그램 성능이 저하될 수 있습니다. 이 성능 영향은 추적 데이터 수집 및 저장 오버헤드로 인해 발생할 수 있습니다.데이터베이스 세션에 대해 SQL 추적을 활성화하려면 다음을 수행합니다.
SQL 추적을 사용 안함으로 설정
Autonomous Database의 클라우드 객체 저장소에 저장된 추적 파일 보기
DEFAULT_LOGGING_BUCKET
로 구성된 클라우드 객체 저장소 버킷에 기록됩니다.
SQL Trace 기능은 세션에서 수집된 추적 데이터를 클라우드 객체 저장소에 다음 형식으로 기록합니다.
default_logging_bucket/sqltrace/clientID/moduleName/sqltrace_numID1_numID2.trc
파일 이름의 구성 요소는 다음과 같습니다.
-
default_logging_bucket:
DEFAULT_LOGGING_BUCKET
데이터베이스 등록 정보의 값입니다. 자세한 내용은 Autonomous Database에서 SQL 추적 구성을 참조하십시오. -
clientID
: 클라이언트 식별자입니다. 자세한 내용은 Autonomous Database에서 SQL 추적 사용을 참조하십시오. -
moduleName
: 모듈 이름입니다. 자세한 내용은 Autonomous Database에서 SQL 추적 사용을 참조하십시오. -
numID1
_numID2
: SQL Trace 기능에서 제공하는 두 개의 식별자입니다.numID1
및numID2
숫자 값은 추적을 사용하여 각 추적 파일 이름을 다른 세션과 구분하고 클라우드 오브젝트 스토리지의 동일한 버킷에 추적 파일을 생성합니다.데이터베이스 서비스가 병렬화를 지원하고 세션이 Parallel Query를 실행하는 경우 SQL Trace 기능은
numID1
및numID2
값이 다른 여러 Trace File을 생성할 수 있습니다.
주:
SQL 추적이 동일한 세션 내에서 여러 번 사용 및 사용 안함으로 설정된 경우 각 추적 반복은 클라우드 객체 저장소에 별도의 추적 파일을 생성합니다. 세션에서 생성된 이전 Trace를 겹쳐쓰지 않도록 하기 위해 이후에 생성된 파일은 동일한 이름 지정 규칙을 따르고 Trace File 이름에 숫자 접미어를 추가합니다. 이 숫자 접미어는 숫자 1로 시작하고 이후의 각 추적 반복에 대해 1씩 증가합니다.예를 들어, 다음은 클라이언트 식별자를 "sql_test"
로 설정하고 모듈 이름을 "modname"
로 설정할 때 생성되는 샘플 Trace File 이름입니다.
sqltrace/sqlt_test/modname/sqltrace_5415_56432.trc
TKPROF
를 실행하여 추적 파일을 읽을 수 있는 출력 파일로 변환할 수 있습니다.
Autonomous Database의 SESSION_CLOUD_TRACE 뷰에서 추적 데이터 보기
SESSION_CLOUD_TRACE
뷰에서 클라우드 객체 저장소의 추적 파일에 저장된 것과 동일한 추적 정보를 사용할 수 있습니다.
SESSION_CLOUD_TRACE
뷰에서 SQL 추적 데이터를 볼 수 있습니다. SESSION_CLOUD_TRACE
뷰에는 ROW_NUMBER
및 TRACE
의 두 열이 포함됩니다.DESC SESSION_CLOUD_TRACE
Name Null? Type
---------- ----- ------------------------------
ROW_NUMBER NUMBER
TRACE VARCHAR2(32767)
ROW_NUMBER
는 TRACE
열에 있는 추적 데이터의 순서를 지정합니다. 추적 파일에 기록된 각 추적 출력 행은 테이블의 행이 되며 TRACE
열에서 사용할 수 있습니다.
세션에 대해 SQL 추적을 사용 안함으로 설정한 후 SESSION_CLOUD_TRACE
뷰에서 질의를 실행할 수 있습니다.
SELECT trace FROM SESSION_CLOUD_TRACE ORDERBY row_number;
SESSION_CLOUD_TRACE
의 데이터는 세션 기간 동안 지속됩니다. 로그아웃하거나 세션을 닫으면 데이터를 더 이상 사용할 수 없습니다.
SQL Trace가 동일한 세션 내에서 여러 번 활성화 및 비활성화되면 SESSION_CLOUD_TRACE
는 모든 반복에 대한 추적 데이터를 누적하여 표시합니다. 따라서 이전에 추적을 비활성화한 후 세션에서 추적을 다시 활성화해도 이전 반복으로 생성된 추적 데이터는 제거되지 않습니다.