전용 Exadata 인프라의 자율운영 AI 데이터베이스의 고성능 기능
이 문서에서는 전용 Exadata 인프라의 자율운영 AI 데이터베이스의 주요 성능 튜닝 기능에 대해 설명합니다.
이 섹션 전체에서 "귀하"라는 용어는 특정 작업을 수행할 책임이 있는 조직의 모든 사용자를 의미하는 데 광범위하게 사용됩니다. 경우에 따라 이것이 응용 프로그램 DBA이고 다른 경우에는 응용 프로그램 개발자입니다.
자율운영 AI 데이터베이스에는 데이터베이스의 성능을 자동으로 모니터링, 분석 및 최적화하는 몇 가지 기능이 포함되어 있습니다. Oracle Autonomous AI Database의 SQL 튜닝 및 성능 관리 기능에 대한 전체 목록과 이 기능의 사용 방법에 대한 지침은 Oracle Database 19c SQL Tuning Guide 또는 Oracle Database 26ai SQL Tuning Guide를 참조하십시오.
아래 설명된 자율운영 AI 데이터베이스의 주요 성능 튜닝 기능에 대한 광범위한 범주를 확인할 수 있습니다.
미리 정의된 데이터베이스 서비스
응용 프로그램이 데이터베이스에 연결하는 방법과 데이터베이스에 대한 SQL 호출을 코딩하는 방법에 따라 응용 프로그램의 트랜잭션 처리 및 보고 작업에 대한 전반적인 성능이 결정됩니다.
자율운영 AI 데이터베이스에 연결할 때 애플리케이션과 데이터베이스 간의 상호 작용 성능은 접속하는 데이터베이스 서비스에 따라 달라집니다. 자율운영 AI 데이터베이스는 데이터베이스에 접속할 때 사용할 여러 데이터베이스 서비스 집합을 제공합니다. 이러한 연결 서비스는 자율운영 AI 데이터베이스에 대해 미리 정의된 데이터베이스 서비스 이름에 설명된 대로 다양한 종류의 데이터베이스 작업을 지원하도록 설계되었습니다.
참고: 이러한 특성을 기반으로 여러 데이터베이스 서비스 집합을 비교하는 미리 정의된 데이터베이스 서비스 및 테이블의 주요 특성을 검토하여 응용 프로그램의 성능 요구 사항에 더 적합한 데이터베이스 서비스를 결정해야 합니다.
접속 풀
자율운영 AI 데이터베이스에 대한 접속을 설정할 때 접속 풀을 사용하여 개별 접속을 반복적으로 생성하고 삭제하는 성능 오버헤드를 줄일 수 있습니다. 이는 응용 프로그램이 데이터베이스와 상호 작용하는 성능에 큰 영향을 주는 또 다른 요소입니다.
일반적으로 연결 풀의 사용은 지속적인 가용성을 제공하기 위해 응용 프로그램을 설계하거나 향상시킬 때만 고려됩니다. 그러나 개별 연결 대신 연결 풀을 사용하면 거의 모든 트랜잭션 처리 응용 프로그램에 도움이 될 수 있습니다. 연결 풀은 다음과 같은 이점을 제공합니다.
-
새 연결 객체가 생성되는 횟수를 줄입니다.
-
연결 객체 재사용을 촉진합니다.
-
연결을 얻는 과정을 가속화합니다.
-
접속 유지 관리에 소비되는 리소스의 양을 제어합니다.
-
연결 객체를 수동으로 관리하는 데 필요한 코딩 작업량을 줄입니다.
특수 목적 연결 기능
Oracle Net Services(이전의 SQL*Net)는 특정 연결 시나리오에서 성능을 향상시키는 다양한 연결 기능을 제공합니다. 이러한 기능에 대해서는 Oracle Database 19c Net Services Administrator's Guide 또는 Oracle Database 26ai Net Services Administrator's Guide에 설명되어 있습니다.
-
콜로케이션 태그 지정은 특정 트랜잭션 처리 애플리케이션에서 유용한 기능 중 하나입니다. 응용 프로그램이 동일한 데이터베이스 서비스에 반복적으로 연결하는 경우, 동일 위치 배치 태그 지정은 이러한 모든 연결을 동일한 데이터베이스 instance로 이동할 수 있게 하며 일반적으로 연결의 데이터베이스측에서 수행되는 로드 밸런싱 처리를 건너뜁니다. 자세한 내용은 Oracle Database 19c 또는 Oracle Database 26ai의 COLOCATION_TAG of Client Connections를 참조하십시오.
-
공유 서버 구성은 자율운영 AI 데이터베이스가 연결 풀링 없이 설계된 레거시 애플리케이션을 유지 관리할 수 있도록 지원하는 또 다른 기능입니다. 공유 서버 구조를 사용하면 데이터베이스 서버에서 많은 클라이언트 프로세스가 매우 적은 수의 서버 프로세스를 공유할 수 있습니다. 그러면 응용 프로그램에서 지원할 수 있는 사용자 수가 늘어납니다. 이러한 레거시 응용 프로그램에 대해 Shared Server 구조를 사용하면 응용 프로그램 자체를 변경하지 않고도 확장할 수 있습니다.
자율운영 컨테이너 데이터베이스(ACD)를 프로비전하는 동안 공유 서버 접속을 사용으로 설정할 수 있으며, 이 설정은 여기에 생성된 모든 데이터베이스에 적용됩니다. 지침은 자율운영 컨테이너 데이터베이스 생성을 참조하십시오.
세션 다중화 등의 기능을 비롯하여 공유 서버에 대한 자세한 내용은 Oracle Database 19c Net Services Administrator's Guide 또는 Oracle Database 26ai Net Services Administrator's Guide를 참조하십시오.
자율운영 컨테이너 데이터베이스에 대해 공유 서버 접속이 사용으로 설정된 후에는 접속 문자열을 변경할 필요가 없습니다. 기본 구성은 Dedicated로 설정됩니다.
참고: 공유 서버 사용 자율운영 컨테이너 데이터베이스 아래에 생성된 특정 자율운영 AI 데이터베이스에 대해 공유 서버를 사용 안함으로 설정할 수 없으며, 공유 서버 사용 자율운영 컨테이너 데이터베이스 아래에 생성된 자율운영 AI 데이터베이스에 대해 전용 접속을 사용할 수 없습니다.
SQL Performance Tuning 기능
훌륭한 응용 프로그램은 잘 작성된 SQL로 시작합니다. Oracle Autonomous AI Database는 고성능 애플리케이션을 구축하고 SQL 및 PL/SQL 코드를 검증할 수 있는 다양한 기능을 제공합니다. 이러한 기능 중 일부는 다음과 같습니다.
-
자동 인덱스화
-
옵티마이저 통계 및 힌트
-
SQL 계획 회귀 자동 분석
-
runaway SQL 문의 자동 격리
-
SQL 계획 관리
-
SQL Tuning 집합
-
SQL Trace
애플리케이션을 개발할 때 Oracle Database Actions(자율운영 AI 데이터베이스에 내장됨) 및 Oracle SQL Developer(개발 시스템에 설치한 무료 애플리케이션)에서 제공하는 SQL Worksheet를 사용하여 이러한 기능이 작성한 SQL 코드에 어떤 영향을 미치는지 빠르게 파악하고 코드를 개선할 수 있습니다.
SQL Tracing
응용 프로그램 작업이 예상보다 오래 걸리는 경우 구문 분석, 실행 및 패치(fetch) 단계에서 해당 SQL 문에 소요된 시간과 같은 세부 정보와 함께 이 작업의 일부로 실행된 모든 SQL 문의 추적을 얻으면 성능 문제의 원인을 식별하고 해결하는 데 도움이 됩니다. 자율운영 AI 데이터베이스에서 SQL 추적을 사용하여 이를 달성할 수 있습니다.
SQL 추적은 자율운영 AI 데이터베이스에서 기본적으로 사용 안함으로 설정됩니다. SQL 추적 데이터 수집을 시작하려면 이 매개변수를 활성화해야 합니다. SQL 추적을 사용으로 설정하고 사용하는 자세한 지침은 자율운영 AI 데이터베이스에서 SQL 추적 사용을 참조하십시오.
최적기 통계
자율운영 AI 데이터베이스는 이 작업을 수동으로 수행할 필요가 없도록 옵티마이저 통계를 자동으로 수집하므로 통계가 최신 상태인지 확인할 수 있습니다. 자동 통계 수집은 자율운영 AI 데이터베이스에서 사용으로 설정되며 표준 유지보수 기간 내에 실행됩니다.
주: 유지보수 기간 시간 및 자동 최적기 통계 수집에 대한 자세한 내용은 Oracle Database 19c Administrator's Guide 또는 Oracle Database 26ai Administrator's Guide를 참조하십시오. 옵티마이저 통계에 대한 자세한 내용은 Oracle Database 19c SQL 튜닝 가이드 또는 Oracle Database 26ai SQL 튜닝 가이드를 참조하십시오.
최적기 힌트
옵티마이저 힌트는 옵티마이저에 지침을 전달하는 SQL 문의 특수 주석입니다. 옵티마이저는 힌트를 사용하여 특정 조건에 의해 금지되지 않는 한 명령문에 대한 실행 계획을 선택합니다.
옵티마이저에 대한 자율운영 AI 데이터베이스 기본값과 PARALLEL 힌트는 워크로드에 따라 다릅니다.
-
자율운영 AI 레이크하우스: 데이터 웨어하우스가 포함된 자율운영 AI 데이터베이스는 SQL 문에서 옵티마이저 힌트와
PARALLEL힌트를 기본적으로 무시합니다.응용 프로그램에서 힌트를 사용하는 경우
ALTER SESSION또는ALTER SYSTEM를 사용하여 세션 또는 시스템 레벨에서OPTIMIZER_IGNORE_HINTS매개변수를FALSE로 설정하여 옵티마이저 힌트를 활성화할 수 있습니다.예를 들어, 다음 명령은 세션에서 힌트를 활성화합니다.
ALTER SESSION SET OPTIMIZER_IGNORE_HINTS=FALSE;ALTER SESSION또는ALTER SYSTEM를 사용하여 세션 또는 시스템 레벨에서OPTIMIZER_IGNORE_PARALLEL_HINTS를FALSE로 설정하여 SQL 문에서PARALLEL힌트를 사용으로 설정할 수도 있습니다.예를 들어, 다음 명령은 세션에서
PARALLEL힌트를 사용으로 설정합니다.ALTER SESSION SET OPTIMIZER_IGNORE_PARALLEL_HINTS=FALSE; -
자율운영 AI 트랜잭션 처리(ATP): 자율운영 AI 데이터베이스는 SQL 문에서 기본적으로 최적기 힌트와
PARALLEL힌트를 공고합니다.ALTER SESSION또는ALTER SYSTEM를 사용하여 세션 또는 시스템 레벨에서OPTIMIZER_IGNORE_HINTS매개변수를TRUE로 설정하여 최적기 힌트를 사용 안함으로 설정할 수 있습니다.예를 들어, 다음 명령은 세션에서 힌트를 사용 안함으로 설정합니다.
ALTER SESSION SET OPTIMIZER_IGNORE_HINTS=TRUE;ALTER SESSION또는ALTER SYSTEM를 사용하여 세션 또는 시스템 레벨에서OPTIMIZER_IGNORE_PARALLEL_HINTS를TRUE로 설정하여 SQL 문에서PARALLEL힌트를 사용 안함으로 설정할 수도 있습니다.예를 들어, 다음 명령은 세션에서
PARALLEL힌트를 사용으로 설정합니다.ALTER SESSION SET OPTIMIZER_IGNORE_PARALLEL_HINTS=TRUE;
자동 인덱스화
자동 인덱싱은 자율운영 AI 데이터베이스의 인덱스 관리 작업을 자동화합니다. 자동 인덱싱은 자율운영 AI 데이터베이스에서 기본적으로 사용 안함으로 설정됩니다.
인덱스를 수동으로 생성하려면 데이터 모델, 응용 프로그램 및 데이터 분산에 대한 충분한 지식이 필요합니다. 과거에는 DBA가 생성할 인덱스를 선택한 다음 조건이 변경됨에 따라 DBA가 선택 사항을 수정하거나 인덱스를 유지 관리하지 못했던 경우가 있었습니다. 결과적으로 개선의 기회가 없어지고 불필요한 인덱스를 사용하면 성능이 저하될 수 있습니다.
자율운영 AI 데이터베이스의 자동 인덱싱 기능은 애플리케이션 워크로드를 모니터링하고 인덱스를 자동으로 생성 및 유지 관리합니다.
참고: 이러한 지침을 보여 주는 "체험하기" 대안의 경우 개발자 및 데이터베이스 사용자 워크숍용 Oracle Autonomous AI Database Dedicated에서 Lab 14: Automatic Indexing을 실행합니다.
자동 인덱스화 사용
-
자동 인덱스화를 사용으로 설정하려면
DBMS_AUTO_INDEX.CONFIGURE프로시저를 사용합니다. 예를 들어, 아래 명령문을 실행하면 데이터베이스에서 자동 인덱스를 활성화하고 새 자동 인덱스를 표시 인덱스로 생성하여 SQL 문에서 사용할 수 있습니다.EXEC DBMS_AUTO_INDEX.CONFIGURE('AUTO_INDEX_MODE','IMPLEMENT'); -
DBMS_AUTO_INDEX패키지를 사용하여 자동 작업에 대해 보고하고 자동 인덱스화 환경설정을 설정합니다. 주: 자동 인덱스화가 사용으로 설정된 경우 자동 인덱스에 대한 인덱스 압축은 기본적으로 사용으로 설정됩니다.
자동 인덱스화 사용 안함
자동 인덱스화를 사용 안함으로 설정하려면 DBMS_AUTO_INDEX.CONFIGURE 프로시저를 사용합니다. 예를 들어, 아래 명령문을 실행하면 새 자동 인덱스가 생성되지 않도록 데이터베이스에서 자동 인덱스화가 비활성화됩니다. 그러나 기존 자동 인덱스는 활성 상태로 유지됩니다.
EXEC DBMS_AUTO_INDEX.CONFIGURE('AUTO_INDEX_MODE','OFF');
자세한 내용은 Oracle Database 19c Administrator's Guide의 Managing Auto Indexes 또는 Oracle Database 26ai Administrator's Guide를 참조하십시오.
빠른 수집
빠른 수집은 데이터베이스에 대한 고주파수 단일 행 데이터 삽입 처리를 최적화합니다. 빠른 수집은 삽입을 디스크에 쓰기 전에 버퍼링하기 위해 대용량 풀을 사용하므로 데이터 삽입 성능이 향상됩니다.
가장 빠른 속도의 목적은 집계에서 중요한 가치를 지니고 있지만 반드시 완전한 ACID 보장이 필요하지는 않은 많은 정보 데이터를 생성하는 응용 프로그램을 지원하는 것입니다. 사물인터넷(Internet of Things, IoT)의 많은 애플리케이션에는 센서 데이터, 스마트 미터 데이터 또는 트래픽 카메라와 같은 신속한 "방화 및 분실" 유형의 워크로드가 있습니다. 이러한 응용 프로그램의 경우 데이터를 수집하여 나중에 분석할 수 있도록 대용량으로 데이터베이스에 쓸 수 있습니다.
빠른 수집은 데이터가 기록되는 일반적인 Oracle AI Database 트랜잭션 처리와는 매우 다르며, 데이터베이스에 "작성된" 데이터(즉, 커밋된 데이터)는 손실되지 않습니다. 최대 수집 처리량을 달성하기 위해 일반적인 Oracle 트랜잭션 메커니즘은 생략되며 모든 데이터가 실제로 데이터베이스에 기록되었는지 확인하는 작업은 응용 프로그램에서 담당합니다. 데이터가 데이터베이스에 기록되었는지 확인하기 위해 호출할 수 있는 특수 API가 추가되었습니다.
빠른 수집 개요 및 이 기능 사용과 관련된 단계는 Oracle Database 19c Performance Tuning Guide의 Using Fast Ingest 또는 Oracle Database 26ai Performance Tuning Guide를 참조하십시오.
자율운영 AI 데이터베이스에서 빠른 수집을 사용하려면 다음을 수행해야 합니다.
-
최적기가 힌트를 사용하도록 설정: 세션 또는 시스템 레벨에서
optimizer_ignore_hints매개변수를FALSE로 적절하게 설정합니다.자율운영 AI 데이터베이스 작업 로드 유형에 따라 기본적으로 시스템 레벨에서
optimizer_ignore_hints를FALSE로 설정할 수 있습니다. 자세한 내용은 최적기 통계를 참조하십시오. -
빠른 수집을 위한 테이블 생성: Fast Ingest에 적합한 테이블 제한은 Oracle Database 19c Performance Tuning Guide 또는 Oracle Database 26ai Performance Tuning Guide를 참조하십시오. 지정된 특성을 가진 테이블은 빠른 수집을 사용할 수 없습니다.
Oracle Scheduler를 사용하여 미리 정의된 작업 클래스
자율운영 AI 데이터베이스에는 Oracle Scheduler와 함께 사용할 사전 정의된 job_class 값이 포함되어 있습니다. 이러한 작업 클래스를 사용하면 공통 특성 및 동작을 공유하는 작업을 더 큰 엔티티로 그룹화할 수 있으므로 각 클래스에 할당된 리소스를 제어하여 이러한 클래스 간에 우선 순위를 지정할 수 있습니다.
미리 정의된 작업 클래스를 사용하여 중요한 작업의 우선 순위와 완료할 리소스가 충분한지 확인할 수 있습니다. 예를 들어, 중요한 프로젝트에서 데이터 웨어하우징을 로드하는 경우 모든 데이터 웨어하우징 작업을 한 클래스로 결합하고 사용 가능한 리소스의 높은 비율을 할당하여 다른 작업보다 우선 순위를 지정할 수 있습니다. 작업 클래스 내의 작업에 상대적인 우선 순위를 지정할 수도 있습니다.
사전 정의된 job_class 값, TPURGENT, TP, HIGH, MEDIUM 및 LOW는 해당 소비자 그룹에 매핑됩니다. 이러한 작업 클래스를 사용하여 작업이 DBMS_SCHEDULER.CREATE_JOB에서 실행되는 소비자 그룹을 지정할 수 있습니다.
DBMS_SCHEDULER.CREATE_JOB 프로시저는 자율운영 AI 데이터베이스의 job_type 매개변수에 대해 PLSQL_BLOCK 및 STORED_PROCEDURE 작업 유형을 지원합니다.
예를 들어, 다음을 사용하여 HIGH 소비자 그룹에서 실행할 단일 정규 작업을 생성합니다.
BEGIN
DBMS_SCHEDULER.CREATE_JOB (
job_name => 'update_sales',
job_type => 'STORED_PROCEDURE',
job_action => 'OPS.SALES_PKG.UPDATE_SALES_SUMMARY',
start_date => '28-APR-19 07.00.00 PM Australia/Sydney',
repeat_interval => 'FREQ=DAILY;INTERVAL=2',
end_date => '20-NOV-19 07.00.00 PM Australia/Sydney',
auto_drop => FALSE,
job_class => 'HIGH',
comments => 'My new job');
END;
/
Oracle Scheduler 참고 사항:
-
DBMS_SCHEDULER.CREATE_JOB를 사용하려면 특정 롤 또는 권한에 대한 추가 권한 부여가 필요할 수 있습니다.ADMIN사용자 및DWROLE사용자가 필요한CREATE SESSION및CREATE JOB권한을 가집니다. 사용자에게DWROLE가 없는 경우CREATE SESSION및CREATE JOB권한에 대한 권한 부여가 필요합니다. -
instance_id작업 속성은 자율운영 AI 데이터베이스에서 실행되는 Oracle Scheduler 작업에 대해 무시됩니다.
Oracle Scheduler 및 DBMS_SCHEDULER.CREATE_JOB에 대한 자세한 내용은 Oracle Database 19c 또는 Oracle Database 26ai 의 Oracle Scheduler로 작업 일정 잡기를 참조하십시오.
작업 속성에 대한 자세한 내용은 Oracle Database 19c의 SET_ATTRIBUTE 프로시저 또는 Oracle Database 26ai를 참조하십시오.
성능 모니터링 및 튜닝 툴
작업 로드 변경, 응용 프로그램 및 데이터베이스 서버에 대한 리소스 제한 또는 단순히 네트워크 병목 현상과 같은 여러 상황에서 응용 프로그램 성능 문제가 발생할 수 있습니다. Oracle은 성능을 모니터하고, 성능 문제를 진단하고, 응용 프로그램이나 데이터베이스를 튜닝하여 문제를 해결하는 데 도움이 되는 다양한 툴을 제공합니다. 그들 중 일부는 아래에 나열되어 있습니다 :
| 도구 | 세부정보 |
|---|---|
| 성능 허브 | Oracle Cloud Infrastructure(OCI) 콘솔에서 사용 가능한 풍부한 기능을 갖춘 즉시 사용 가능한 툴입니다. 성능 허브는 Oracle Database Actions 및 Oracle Enterprise Manager와 함께 내장되어 있습니다. 자세한 내용은 성능 허브를 사용하여 데이터베이스 성능 모니터링을 참조하십시오. |
| 자율운영 AI 데이터베이스 측정항목 | 자율운영 AI 데이터베이스 측정항목은 CPU 및 스토리지 활용률, 성공 및 실패한 데이터베이스 로그인 및 접속 시도 수, 데이터베이스 작업, SQL 질의, 트랜잭션 등과 같은 유용한 정량 데이터를 측정하는 데 도움이 됩니다. 측정항목 데이터를 사용하여 자율운영 AI 데이터베이스 리소스의 문제를 진단하고 해결할 수 있습니다. 전용 Exadata 인프라의 자율운영 AI 데이터베이스에 대해 사용 가능한 측정항목 목록, 필요 조건, 사용량 등 자세한 내용은 자율운영 AI 데이터베이스 측정항목으로 데이터베이스 모니터링을 참조하십시오. |
| AWR(Automatic Workload Repository) 및 ADDM(Automatic Database Diagnostic Monitor) | 일반적으로 사용되는 다른 두 가지 툴은 AWR(Automatic Workload Repository)과 ADDM(Automatic Database Diagnostic Monitor)입니다. AWR은 Oracle 데이터베이스에 대한 성능 관련 통계를 저장하며, ADDM은 정기적으로 AWR 데이터를 분석하고, 성능 문제의 근본 원인을 찾고, 문제 해결을 위한 권장 사항을 제공하고, 시스템의 문제 없는 영역을 식별하는 진단 도구입니다. AWR은 기록 성능 데이터의 Repository이므로 ADDM은 이벤트 후 성능 문제를 분석할 수 있으므로 종종 시간과 리소스를 절약하여 문제를 재현할 수 있습니다. 이러한 툴 사용 지침과 데이터베이스 성능 모니터링 및 튜닝에 대한 자세한 내용은 Oracle Database 19c 성능 튜닝 가이드 또는 Oracle Database 26ai 성능 튜닝 가이드를 참조하십시오. AWR 및 ADDM은 Performance Hub에서도 사용할 수 있습니다. 자세한 내용은 성능 허브로 데이터베이스 성능 모니터링을 참조하십시오. 데이터베이스 성능 모니터링 및 튜닝에 대한 빠른 소개는 Oracle Database 19c 2 Day + Performance Tuning Guide 또는 Oracle Database 26ai 2 Day + Performance Tuning Guide를 참조하십시오. |