전용 Exadata 인프라의 자율운영 AI 데이터베이스에서 SQL 추적 사용
Autonomous AI Database on Dedicated Exadata Infrastructure와 함께 SQL Tracing을 사용하면 애플리케이션에서 로드가 많은 SQL 문과 같이 과도한 데이터베이스 워크로드의 소스를 식별할 수 있습니다.
SQL Trace 정보
응용 프로그램 작업이 예상보다 오래 걸리는 경우 구문 분석, 실행 및 패치(fetch) 단계에서 해당 SQL 문에 소요된 시간과 같은 세부 정보와 함께 이 작업의 일부로 실행된 모든 SQL 문의 추적을 얻으면 성능 문제의 원인을 식별하고 해결하는 데 도움이 됩니다. 자율운영 AI 데이터베이스에서 SQL 추적을 사용하여 이를 달성할 수 있습니다.
- SQL Trace file 저장을 위한 데이터베이스 구성부터 시작합니다. 자세한 내용은 자율운영 AI 데이터베이스에서 SQL 추적 구성을 참조하십시오.
- 그런 다음 SQL Trace를 활성화합니다. 자율운영 AI 데이터베이스에서 SQL 추적 사용을 참조하십시오.
주:
SQL 추적을 활성화하면 추적 수집이 활성화되어 있는 동안 세션에 대한 응용 프로그램 성능이 저하될 수 있습니다. 이 성능 영향은 추적 데이터 수집 및 저장 오버헤드로 인해 발생할 수 있습니다. - SQL 추적 데이터 수집을 정지하려면 SQL 추적을 비활성화해야 합니다. Disable SQL Tracing을 참조하십시오.
- SQL 추적을 사용 안함으로 설정하면 추적이 사용으로 설정된 상태로 세션이 실행되는 동안 수집된 추적 데이터가 세션의
SESSION_CLOUD_TRACE뷰 및 버킷의 추적 파일에 기록됩니다. 이 뷰는 SQL 추적을 설정하는 동안 구성합니다. 추적 데이터를 볼 수 있는 두 가지 옵션이 있습니다.- 클라우드 객체 저장소에 저장된 추적 파일의 SQL 추적 데이터를 보고 분석합니다. 자세한 내용은 자율운영 AI 데이터베이스의 클라우드 객체 저장소에 저장된 추적 파일 보기를 참조하십시오.
SESSION_CLOUD_TRACE뷰에 저장된 SQL 추적 데이터를 보고 분석합니다. 자세한 내용은 자율운영 AI 데이터베이스에서 SESSION_CLOUD_TRACE 뷰의 추적 데이터 보기를 참조하십시오.
자율운영 AI 데이터베이스에서 SQL 추적 사용
주:
SQL 추적을 활성화하면 추적 수집이 활성화되어 있는 동안 세션에 대한 응용 프로그램 성능이 저하될 수 있습니다. 이 성능 영향은 추적 데이터 수집 및 저장 오버헤드로 인해 발생할 수 있습니다.데이터베이스 세션에 대해 SQL 추적을 활성화하려면 다음을 수행합니다.
SQL 추적을 사용 안함으로 설정
자율운영 AI 데이터베이스에서 클라우드 객체 저장소에 저장된 추적 파일 보기
DEFAULT_LOGGING_BUCKET로 구성된 클라우드 객체 저장소 버킷에 기록됩니다.
SQL Trace 기능은 세션에서 수집된 추적 데이터를 클라우드 객체 저장소에 다음 형식으로 기록합니다.
default_logging_bucket/sqltrace/clientID/moduleName/sqltrace_numID1_numID2.trc
파일 이름의 구성 요소는 다음과 같습니다.
-
default_logging_bucket:
DEFAULT_LOGGING_BUCKET데이터베이스 속성의 값입니다. 자세한 내용은 자율운영 AI 데이터베이스에서 SQL 추적 구성을 참조하십시오. -
clientID: 클라이언트 식별자입니다. 자세한 내용은 자율운영 AI 데이터베이스에서 SQL 추적 사용을 참조하십시오. -
moduleName: 모듈 이름입니다. 자세한 내용은 자율운영 AI 데이터베이스에서 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를 실행하여 추적 파일을 읽을 수 있는 출력 파일로 변환할 수 있습니다.
자율운영 AI 데이터베이스에서 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는 모든 반복에 대한 추적 데이터를 누적하여 표시합니다. 따라서 이전에 추적을 비활성화한 후 세션에서 추적을 다시 활성화해도 이전 반복으로 생성된 추적 데이터는 제거되지 않습니다.