Oracle SQLT - Amazon Relational Database Service

Oracle SQLT

Amazon RDS는 SQLT 옵션 사용을 통해 Oracle SQLTXPLAIN(SQLT)을 지원합니다.

Oracle EXPLAIN PLAN 문은 SQL 문의 실행 계획을 확인할 수 있습니다. 이 문은 Oracle 옵티마이저가 특정 실행 계획(예: 중첩 루프 조인)을 선택했는지 확인할 수 있습니다. 또한 옵티마이저의 결정(예: 해시 조인이 아니라 중첩 루프 조인을 선택한 이유)을 이해하도록 돕습니다. 따라서 EXPLAIN PLAN을 통해 문의 성능을 파악할 수 있습니다.

SQLT는 보고서를 생성하는 Oracle 유틸리티입니다. 이 보고서에는 객체 통계, 객체 메타데이터, 옵티마이저 관련 초기화 파라미터와 데이터베이스 관리자가 최적의 성능을 위해 SQL 문을 튜닝하는 데 사용할 수 있는 기타 정보가 포함됩니다. SQLT는 모든 섹션에 대한 하이퍼링크가 포함된 HTML 보고서를 생성합니다.

Automatic Workload Repository 또는 Statspack 보고서와 달리 SQLT는 개별 SQL 문에서 작동합니다. SQLT는 성능 데이터를 수집, 저장 및 표시하는 SQLT, PL/SQL 및 SQL*Plus 파일의 모음입니다.

다음은 각 SQLT 버전에 지원되는 Oracle 버전입니다.

SQLT 버전 Oracle Database 21c Oracle Database 19c Oracle Database 12c 릴리스 2(12.2) Oracle Database 12c 릴리스 1(12.1)

2018-07-25.v1

지원

지원

지원

지원

2018-03-31.v1

지원되지 않음

지원되지 않음

지원

지원

2016-04-29.v1

지원되지 않음

지원되지 않음

지원

지원

이를 사용하기 위해 SQLT 및 액세스 지침을 다운로드하려면:

SQLT는 다음과 같은 Oracle 데이터베이스 버전에 사용할 수 있습니다.

  • Oracle Database 21c(21.0.0.0)

  • Oracle Database 19c(19.0.0.0)

  • Oracle Database 12c 릴리스 2(12.2.0.1)

  • Oracle Database 12c 릴리스 1(12.1.0.2)

Amazon RDS는 다음 SQLT 메서드를 지원하지 않습니다.

  • XPLORE

  • XHUME

SQLT의 사전 조건

다음은 SQLT 사용을 위한 사전 조건입니다.

  • SQLT에 필요한 사용자 및 역할을 제거해야 합니다(있는 경우).

    SQLT 옵션이 DB 인스턴스에 다음 사용자 및 역할을 생성합니다.

    • SQLTXPLAIN user

    • SQLTXADMIN user

    • SQLT_USER_ROLE 역할

    DB 인스턴스에 이러한 사용자 또는 역할이 있는 경우 SQL 클라이언트를 사용해 DB 인스턴스에 로그인하여 다음 문을 사용하여 삭제하십시오.

    DROP USER SQLTXPLAIN CASCADE; DROP USER SQLTXADMIN CASCADE; DROP ROLE SQLT_USER_ROLE CASCADE;
  • SQLT에 필요한 테이블 공간을 제거해야 합니다(있는 경우).

    SQLT 옵션이 DB 인스턴스에 다음 테이블 공간을 생성합니다.

    • RDS_SQLT_TS

    • RDS_TEMP_SQLT_TS

    DB 인스턴스에 이러한 테이블 공간이 있는 경우 SQL 클라이언트를 사용해 DB 인스턴스에 로그인하여 삭제하십시오.

SQLT 옵션 설정

SQLT에서는 Oracle Tuning Pack 및 Oracle Diagnostics Pack에서 제공하는 사용이 허가된 기능을 사용할 수 있습니다. Oracle Tuning Pack에는 SQL Tuning Advisor가 들어 있고, Oracle Diagnostics Pack에는 Automatic Workload Repository가 들어 있습니다. SQLT 설정에 따라 SQLT에서 이러한 기능에 대한 액세스가 활성화 또는 비활성화됩니다.

Amazon RDS는 SQLT 옵션에 대해 다음 설정을 지원합니다.

옵션 설정 유효한 값 기본값 설명

LICENSE_PACK

T, D, N

N

SQLT를 사용하여 액세스하려고 하는 Oracle Management Pack입니다. 다음 값 중 하나를 입력합니다.

  • T는 Oracle Tuning Pack 및 Oracle Diagnostics Pack에 대한 라이선스가 있고 SQLT에서 SQL Tuning Advisor 및 Automatic Workload Repository에 액세스하려고 함을 나타냅니다.

  • D는 Oracle Diagnostics Pack에 대한 라이선스가 있고 SQLT에서 Automatic Workload Repository에 액세스하려고 함을 나타냅니다.

  • N은 Oracle Tuning Pack 및 Oracle Diagnostics Pack에 대한 라이선스가 없거나 둘 중 하나 또는 둘 다에 대한 라이선스가 있지만 SQLT에서 이러한 팩에 액세스하려고 하지 않음을 나타냅니다.

참고

Amazon RDS는 Oracle Management Pack에 대한 라이선스를 제공하지 않습니다. DB에 포함되어 있는 않은 팩을 사용하려고 하는 경우에는 DB 인스턴스에서 SQLT를 사용할 수 있습니다. 그러나 SQLT에서 해당 팩에 액세스할 수 없고 SQLT 보고서에 해당 팩에 대한 데이터가 포함되지 않습니다. 예를 들어, T를 지정한 경우 DB 인스턴스에는 Oracle Tuning Pack이 포함되지 않고, SQLT가 DB 인스턴스에서 작동하지만 SQLT 보고서에는 Oracle Tuning Pack과 관련된 데이터가 들어 있지 않습니다.

VERSION

2016-04-29.v1

2018-03-31.v1

2018-07-25.v1

2016-04-29.v1

설치하려는 SQLT 버전

참고

Oracle Database 19c 및 21c의 경우 지원되는 유일한 버전은 2018-07-25.v1입니다. 이 버전은 이러한 릴리스의 기본값입니다.

SQLT 옵션 추가

SQLT 옵션을 DB 인스턴스에 추가하는 일반적인 프로세스는 다음과 같습니다.

  1. 새 옵션 그룹을 생성하거나 기존 옵션 그룹을 복사 또는 수정합니다.

  2. SQLT 옵션을 옵션 그룹에 추가합니다.

  3. 옵션 그룹을 DB 인스턴스에 연동시킵니다.

SQLT 옵션을 추가하면 옵션 그룹이 활성화되는 순간, SQLT가 활성화됩니다.

DB 인스턴스에 SQLT 옵션을 추가하려면
  1. 사용할 옵션 그룹을 결정합니다. 새 옵션 그룹을 생성하거나 기존 옵션 그룹을 사용합니다. 기존 옵션 그룹을 사용하려면 다음 단계로 건너뛰십시오. 그렇지 않으면 다음 설정을 사용하여 사용자 지정 DB 옵션을 생성합니다.

    1. [Engine]에서 사용할 Oracle 버전을 선택합니다. 모든 버전에서 SQLT 옵션이 지원됩니다.

    2. 메이저 엔진 버전에서 DB 인스턴스의 버전을 선택합니다.

    자세한 내용은 옵션 그룹 생성 섹션을 참조하세요.

  2. [SQLT] 옵션을 옵션 그룹에 추가합니다. 옵션 추가에 대한 자세한 내용은 옵션 그룹에 옵션 추가 섹션을 참조하세요.

  3. 옵션 그룹을 새 DB 인스턴스 또는 기존 DB 인스턴스에 적용합니다:

    • 새 DB 인스턴스의 경우, 인스턴스를 시작할 때 옵션 그룹을 적용합니다. 자세한 내용은 Amazon RDS DB 인스턴스 생성 섹션을 참조하세요.

    • 기존 DB 인스턴스의 경우, 해당 인스턴스를 수정하고 새 옵션 그룹을 연결하여 옵션 그룹을 적용합니다. 자세한 내용은 Amazon RDS DB 인스턴스 수정 섹션을 참조하세요.

  4. (선택 사항) SQLT 옵션을 사용하여 각 DB 인스턴스에서 SQLT 설치를 확인합니다.

    1. SQL 클라이언트를 사용하여 마스터 관리자로 DB 인스턴스에 연결합니다.

      SQL 클라이언트를 사용하여 Oracle DB 인스턴스에 연결하는 방법에 대한 자세한 내용은 RDS for Oracle DB 인스턴스에 연결 단원을 참조하십시오.

    2. 다음 쿼리를 실행합니다.

      SELECT sqltxplain.sqlt$a.get_param('tool_version') sqlt_version FROM DUAL;

      이 쿼리는 Amazon RDS에 있는 SQLT 옵션의 현재 버전을 반환합니다. 12.1.160429는 Amazon RDS에서 사용 가능한 SQLT 버전의 예입니다.

  5. SQLT 옵션에서 생성한 사용자의 암호를 변경합니다.

    1. SQL 클라이언트를 사용하여 마스터 관리자로 DB 인스턴스에 연결합니다.

    2. 다음 SQL 문을 실행하여 SQLTXADMIN 사용자의 암호를 변경합니다.

      ALTER USER SQLTXADMIN IDENTIFIED BY new_password ACCOUNT UNLOCK;
      참고

      보안 모범 사례로 여기에 표시된 프롬프트 이외의 암호를 지정하는 것이 좋습니다.

    3. 다음 SQL 문을 실행하여 SQLTXPLAIN 사용자의 암호를 변경합니다.

      ALTER USER SQLTXPLAIN IDENTIFIED BY new_password ACCOUNT UNLOCK;
      참고

      보안 모범 사례로 여기에 표시된 프롬프트 이외의 암호를 지정하는 것이 좋습니다.

참고

SQLT를 업그레이드하려면 이전 버전의 SQLT를 제거한 다음 새 버전을 설치해야 합니다. 따라서 SQLT를 업그레이드하면 모든 SQLT 메타데이터가 손실될 수 있습니다. 데이터베이스의 메이저 버전 업그레이드 역시 SQLT를 제거한 후 다시 설치합니다. 메이저 버전 업그레이드의 예로는 Oracle Database 12c 릴리스 2(12.2)에서 Oracle Database 19c로의 업그레이드가 있습니다.

SQLT 사용

SQLT는 Oracle SQL*Plus 유틸리티와 함께 작동합니다.

SQLT를 사용하려면
  1. My Oracle Support 사이트의 문서 215187.1에서 SQLT .zip 파일을 다운로드합니다.

    참고

    My Oracle Support 사이트에서 SQLT 12.1.160429를 다운로드할 수 없습니다. Oracle에는 이 구 버전이 사용되지 않습니다.

  2. SQLT .zip 파일의 압축을 풉니다.

  3. 명령 프롬프트에서 파일 시스템의 sqlt/run 디렉터리로 변경합니다.

  4. 명령 프롬프트에서 SQL*Plus를 열고 DB 인스턴스에 마스터 사용자로 연결합니다.

    SQL*Plus를 사용한 DB 인스턴스 연결에 대한 자세한 내용은 RDS for Oracle DB 인스턴스에 연결 단원을 참조하십시오.

  5. SQL 문의 SQL ID를 가져옵니다.

    SELECT SQL_ID FROM V$SQL WHERE SQL_TEXT='sql_statement';

    다음과 유사하게 출력됩니다.

    SQL_ID ------------- chvsmttqjzjkn
  6. SQLT를 사용하여 SQL 문을 분석합니다.

    START sqltxtract.sql sql_id sqltxplain_user_password

    예를 들어 SQL ID chvsmttqjzjkn의 경우 다음과 같이 입력합니다.

    START sqltxtract.sql chvsmttqjzjkn sqltxplain_user_password

    SQLT가 SQLT 명령이 실행된 디렉터리에 HTML 보고서 및 관련 리소스를 .zip 파일로 생성합니다.

  7. (선택 사항) 애플리케이션 사용자가 SQLT를 사용하여 SQL 문을 진단하도록 하려면 다음 문을 사용하여 각 애플리케이션 사용자에게 SQLT_USER_ROLE을 부여하십시오.

    GRANT SQLT_USER_ROLE TO application_user_name;
    참고

    Oracle에서는 SYS 사용자 또는 DBA 역할을 가진 사용자가 SQLT를 실행하는 것을 권장하지 않습니다. 애플리케이션 사용자에게 SQLT_USER_ROLE을 부여해 애플리케이션 사용자의 계정으로 SQLT 진단을 실행하는 것이 가장 좋습니다.

SQLT 옵션 업그레이드

Amazon RDS for Oracle을 사용하면 SQLT 옵션을 기존 버전에서 상위 버전으로 업그레이드할 수 있습니다. SQLT 옵션을 업그레이드하려면 SQLT 새 버전에 대한 SQLT 사용의 1단계–3단계를 완료하십시오. 또한, 이 섹션의 7단계에서 SQLT 이전 버전에 대한 권한을 부여한 경우 새 SQLT 버전에 대한 이 권한을 다시 부여하십시오.

SQLT 옵션을 업그레이드하면 이전 SQLT 버전의 메타데이터가 손실됩니다. 이전 SQLT 버전의 스키마 및 관련 객체는 삭제되고 최신 버전의 SQLT가 설치됩니다. 최신 SQLT 버전의 변경 사항에 대한 자세한 내용은 My Oracle Support 사이트의문서 1614201.1을 참조하십시오.

참고

버전 다운그레이드는 지원되지 않습니다.

SQLT 설정 수정

SQLT를 활성화한 후에는 이 옵션에 대한 LICENSE_PACKVERSION 설정을 수정할 수 있습니다.

옵션 설정을 변경하는 방법에 대한 자세한 내용은 옵션 설정 수정을(를) 참조하십시오. 각 설정에 대한 자세한 내용은 SQLT 옵션 설정 단원을 참조하십시오.

SQLT 옵션 제거

DB 인스턴스에서 SQLT를 제거할 수 있습니다.

DB 인스턴스에서 SQLT를 제거하려면 다음 중 하나를 수행합니다.

  • 여러 DB 인스턴스에서 SQLT를 제거하려면 DB 인스턴스가 속한 옵션 그룹에서 해당 SQLT 옵션을 제거합니다. 이 변경은 해당 옵션 그룹을 사용하는 모든 DB 인스턴스에 영향을 미칩니다. 자세한 내용은 옵션 그룹에서 옵션 제거 섹션을 참조하세요.

  • 단일 DB 인스턴스에서 SQLT를 제거하려면 DB 인스턴스를 수정하고 SQLT 옵션이 포함되지 않은 다른 옵션 그룹을 지정합니다. 기본(빈) 옵션 그룹을 지정하거나 다른 사용자 지정 옵션 그룹을 지정할 수 있습니다. 자세한 내용은 Amazon RDS DB 인스턴스 수정을 참조하세요.