Funzionalità ad alte prestazioni in Autonomous AI Database su un'infrastruttura Exadata dedicata

Questo articolo descrive le funzioni chiave di tuning delle prestazioni in Autonomous AI Database on Dedicated Exadata Infrastructure.

Si noti che in questa sezione il termine "voi" è ampiamente utilizzato per indicare qualsiasi utente dell'organizzazione che ha la responsabilità di eseguire determinati task. In alcuni casi, questo è l'applicazione DBA, in altri è lo sviluppatore dell'applicazione.

Autonomous AI Database include diverse funzionalità che monitorano, analizzano e ottimizzano automaticamente le prestazioni del tuo database. Per un elenco completo delle funzioni di SQL tuning e di gestione delle prestazioni di Oracle Autonomous AI Database e le istruzioni su come utilizzarle, vedere Oracle Database 19c SQL Tuning Guide o Oracle Database 26ai SQL Tuning Guide.

È possibile visualizzare un'ampia categorizzazione per le funzioni chiave di tuning delle prestazioni di Autonomous AI Database descritte di seguito.

Descrizione dell'immagine hp_features.svg

Servizi di database predefiniti

La modalità di connessione dell'applicazione al database e la modalità di codifica delle chiamate SQL al database determinano le prestazioni complessive delle operazioni di elaborazione e reporting delle transazioni dell'applicazione.

Quando effettui connessioni a Autonomous AI Database, le prestazioni dell'interazione della tua applicazione con il database dipendono dal servizio di database a cui ti connetti. Autonomous AI Database fornisce più set di servizi di database da utilizzare quando ci si connette al database. Questi servizi di connessione sono progettati per supportare diversi tipi di operazioni di database, come descritto in Nomi di servizi di database predefiniti per i database AI autonomi.

Suggerimento: assicurarsi di esaminare le caratteristiche chiave dei servizi di database predefiniti e la tabella che confronta i diversi set di servizi di database in base a queste caratteristiche per decidere quale servizio di database è più appropriato per i requisiti di prestazioni dell'applicazione.

Connection pool

Quando effettui connessioni a Autonomous AI Database, puoi utilizzare i connection pool per ridurre il sovraccarico delle prestazioni dovuto alla creazione e all'eliminazione ripetute di singole connessioni. Questo è un altro fattore che ha un grande impatto sulle prestazioni dell'interazione dell'applicazione con il database.

Molto spesso, l'uso dei connection pool viene considerato solo quando si progetta o si migliora un'applicazione per fornire una disponibilità continua. Tuttavia, l'uso di connection pool anziché di singole connessioni può trarre vantaggio da quasi tutte le applicazioni di elaborazione delle transazioni. Un connection pool offre i vantaggi riportati di seguito.

Funzioni di connessione speciali

Oracle Net Services (precedentemente denominato SQL*Net) offre una vasta gamma di funzioni di connessione che migliorano le prestazioni in scenari di connessione specifici. Queste funzioni sono descritte nel manuale Oracle Database 19c Net Services Administrator's Guide o nel manuale Oracle Database 26ai Net Services Administrator's Guide.

Funzioni di SQL Performance Tuning

Le grandi applicazioni iniziano con SQL ben scritto. Oracle Autonomous AI Database offre numerose funzionalità che ti consentono di creare applicazioni ad alte prestazioni e convalidare il codice SQL e PL/SQL. Di seguito sono elencate alcune funzioni.

Durante lo sviluppo dell'applicazione, puoi scoprire rapidamente in che modo queste funzioni influiscono sul codice SQL che scrivi e quindi migliorare il codice utilizzando il foglio di lavoro SQL fornito sia da Oracle Database Actions (che è integrato in Autonomous AI Database) che da Oracle SQL Developer (un'applicazione gratuita installata nel tuo sistema di sviluppo).

Trace SQL

Quando un'operazione dell'applicazione richiede più tempo del previsto, ottenere una traccia di tutte le istruzioni SQL eseguite nell'ambito di questa operazione con dettagli quali il tempo impiegato da tale istruzione SQL nelle fasi di analisi, esecuzione e recupero ti aiuterà a identificare e risolvere la causa del problema di prestazioni. Puoi utilizzare il trace SQL in un Autonomous AI Database per ottenere questo risultato.

Il trace SQL è disabilitato per impostazione predefinita in Autonomous AI Database. È necessario abilitarlo per iniziare a raccogliere i dati di trace SQL. Fare riferimento alla sezione Usa SQL Tracing su Autonomous AI Database per istruzioni dettagliate sull'abilitazione e l'uso di SQL Tracing.

Statistiche optimizer

Autonomous AI Database raccoglie automaticamente le statistiche dell'ottimizzatore in modo da non dover eseguire questo task manualmente e questo aiuta a garantire che le statistiche siano aggiornate. La raccolta automatica delle statistiche è abilitata in Autonomous AI Database ed è eseguita in una finestra di manutenzione standard.

Nota: per ulteriori informazioni sui tempi delle finestre di manutenzione e sulla raccolta automatica delle statistiche dell'optimizer, vedere Oracle Database 19c Administrator's Guide o Oracle Database 26ai Administrator's Guide. Per ulteriori informazioni sulle statistiche dell'optimizer, vedere Oracle Database 19c SQL Tuning Guide o Oracle Database 26ai SQL Tuning Guide.

Suggerimenti ottimizzatore

I suggerimenti dell'ottimizzatore sono commenti speciali in un'istruzione SQL che passano le istruzioni all'ottimizzatore. L'ottimizzatore utilizza i suggerimenti per scegliere un piano di esecuzione per l'istruzione, a meno che non venga impedito da alcune condizioni.

Le impostazioni predefinite di Autonomous AI Database per l'ottimizzatore e i suggerimenti PARALLEL variano a seconda del carico di lavoro:

Indicizzazione automatica

L'indicizzazione automatica automatizza le attività di gestione degli indici in Autonomous AI Database. L'indicizzazione automatica è disabilitata per impostazione predefinita in Autonomous AI Database.

La creazione manuale degli indici richiede una conoscenza approfondita del modello di dati, dell'applicazione e della distribuzione dei dati. In passato, i DBA erano responsabili delle scelte relative agli indici da creare e, a volte, i DBA non rivedevano le loro scelte né mantenevano gli indici man mano che le condizioni cambiavano. Di conseguenza, le opportunità di miglioramento sono state perse e l'uso di indici non necessari potrebbe diventare una responsabilità di performance.

La funzione di indicizzazione automatica in Autonomous AI Database monitora il carico di lavoro dell'applicazione e crea e gestisce automaticamente gli indici.

Suggerimento: per un'alternativa "prova" che dimostri queste istruzioni, eseguire Lab 14: Automatic Indexing nel workshop Oracle Autonomous AI Database dedicato per sviluppatori e utenti del database.

Abilita indicizzazione automatica

Disabilita indicizzazione automatica

Utilizzare la procedura DBMS_AUTO_INDEX.CONFIGURE per disabilitare l'indicizzazione automatica. Ad esempio, l'esecuzione dell'istruzione riportata di seguito disabilita l'indicizzazione automatica in un database in modo che non vengano creati nuovi indici automatici. Tuttavia, gli indici automatici esistenti rimangono abilitati.

EXEC DBMS_AUTO_INDEX.CONFIGURE('AUTO_INDEX_MODE','OFF');

Per ulteriori informazioni, vedere Managing Auto Indexes in Oracle Database 19c Administrator's Guide o Oracle Database 26ai Administrator's Guide.

Ingestione rapida

L'inclusione rapida ottimizza l'elaborazione di inserimenti di dati a singola riga ad alta frequenza in un database. Fast ingest utilizza il pool di grandi dimensioni per il buffering degli inserti prima di scriverli su disco, in modo da migliorare le prestazioni di inserimento dei dati.

L'intento di fast-ingest è quello di supportare applicazioni che generano molti dati informativi che hanno un valore importante nell'aggregato, ma che non richiedono necessariamente garanzie ACID complete. Molte applicazioni nell'Internet of Things (IoT) hanno un carico di lavoro di tipo "fire and forget" rapido, come i dati dei sensori, i dati dei contatori intelligenti o anche le telecamere del traffico. Per queste applicazioni, i dati potrebbero essere raccolti e scritti nel database in volumi elevati per un'analisi successiva.

L'inclusione rapida è molto diversa dall'elaborazione normale delle transazioni di Oracle AI Database in cui i dati vengono registrati e non vengono mai persi una volta "scritti" nel database (ovvero sottoposti a commit). Per ottenere il massimo throughput di inclusione, i normali meccanismi di transazione Oracle vengono ignorati ed è responsabilità dell'applicazione verificare che tutti i dati siano stati effettivamente scritti nel database. Sono state aggiunte API speciali che possono essere richiamate per verificare se i dati sono stati scritti nel database.

Per una panoramica dell'inclusione rapida e dei passi necessari per l'uso di questa funzione, vedere Using Fast Ingest in Oracle Database 19c Performance Tuning Guide o Oracle Database 26ai Performance Tuning Guide.

Per utilizzare l'inclusione rapida con Autonomous AI Database, è necessario:

Classi di job predefinite con Oracle Scheduler

Autonomous AI Database include valori job_class predefiniti da utilizzare con Oracle Scheduler. Queste classi di mansioni consentono di raggruppare i processi che condividono caratteristiche e comportamenti comuni in entità più grandi in modo da poter assegnare priorità tra queste classi controllando le risorse allocate a ciascuna classe.

Con le classi di impiego predefinite, è possibile garantire che le mansioni critiche abbiano priorità e risorse sufficienti per essere completate. Ad esempio, per un progetto critico di caricamento di un data warehouse, è possibile combinare tutti i job di data warehousing in un'unica classe e assegnarne la priorità rispetto ad altri job allocando un'alta percentuale delle risorse disponibili. È inoltre possibile assegnare priorità relative alle mansioni all'interno di una classe mansione.

I valori job_class predefiniti, TPURGENT, TP, HIGH, MEDIUM e LOW vengono mappati ai gruppi di consumer corrispondenti. Queste classi di job consentono di specificare il gruppo di consumer in cui viene eseguito un job con DBMS_SCHEDULER.CREATE_JOB.

La procedura DBMS_SCHEDULER.CREATE_JOB supporta i tipi di job PLSQL_BLOCK e STORED_PROCEDURE per il parametro job_type in Autonomous AI Database.

Ad esempio, utilizzare quanto riportato di seguito per creare un singolo job normale da eseguire nel gruppo di consumer 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;
/

Note per Oracle Scheduler:

Per ulteriori informazioni su Oracle Scheduler e DBMS_SCHEDULER.CREATE_JOB, vedere Programmazione di job con Oracle Scheduler in Oracle Database 19c o Oracle Database 26ai.

Per informazioni sugli attributi mansione, vedere la procedura SET_ATTRIBUTE in Oracle Database 19c o Oracle Database 26ai.

Strumenti di monitoraggio e ottimizzazione delle prestazioni

Diverse situazioni, come la modifica dei carichi di lavoro, le limitazioni delle risorse su server di applicazioni e database o semplicemente i colli di bottiglia della rete, possono causare problemi di prestazioni delle applicazioni. Oracle offre una vasta gamma di strumenti che consentono di monitorare le prestazioni, diagnosticare i problemi relativi alle prestazioni e ottimizzare l'applicazione o il database per risolvere il problema. Alcuni di essi sono elencati di seguito:

Strumento Dettagli
Hub delle prestazioni Uno strumento ricco di funzionalità disponibile nella console di Oracle Cloud Infrastructure (OCI). Performance Hub è inoltre integrato con Oracle Database Actions e Oracle Enterprise Manager.

Per ulteriori dettagli, vedere Monitorare le prestazioni del database con Performance Hub.
Metriche di Autonomous AI Database Le metriche di Autonomous AI Database consentono di misurare dati quantitativi utili, come l'utilizzo della CPU e dello storage, il numero di tentativi di login e connessione al database riusciti e non riusciti, le operazioni del database, le query SQL e le transazioni e così via. Puoi utilizzare i dati delle metriche per diagnosticare e risolvere i problemi con le risorse di Autonomous AI Database.

Consulta Monitorare i database con le metriche di Autonomous AI Database per ulteriori informazioni come prerequisiti, uso e lista di metriche disponibili per Autonomous AI Database on Dedicated Exadata Infrastructure.
AWR (Automatic Workload Repository) e ADDM (Automatic Database Diagnostic Monitor) Altri due strumenti comunemente utilizzati sono AWR (Automatic Workload Repository) e ADDM (Automatic Database Diagnostic Monitor).

AWR memorizza le statistiche relative alle prestazioni per un database Oracle e ADDM è uno strumento di diagnostica che analizza regolarmente i dati AWR, individua le cause principali di eventuali problemi di prestazioni, fornisce suggerimenti per la correzione dei problemi e identifica le aree non problematiche del sistema. Poiché AWR è un repository di dati cronologici sulle prestazioni, ADDM può analizzare i problemi di prestazioni dopo l'evento, spesso risparmiando tempo e risorse nella riproduzione di un problema.

Per istruzioni sull'uso di questi strumenti, nonché informazioni dettagliate sul monitoraggio e l'ottimizzazione delle prestazioni del database, vedere Oracle Database 19c Performance Tuning Guide o Oracle Database 26ai Performance Tuning Guide.

AWR e ADDM sono disponibili anche in Performance Hub. Per ulteriori dettagli, vedere Monitorare le prestazioni del database con Hub delle prestazioni.

Per una rapida introduzione al monitoraggio e all'ottimizzazione delle prestazioni del database, vedere Oracle Database 19c 2 Day + Performance Tuning Guide o Oracle Database 26ai 2 Day + Performance Tuning Guide.