Leistungsstarke Features in autonomen KI-Datenbanken auf dedizierter Exadata-Infrastruktur
In diesem Artikel werden die wichtigsten Features zur Leistungsoptimierung in Autonomous AI Database on Dedicated Exadata Infrastructure beschrieben.
Beachten Sie, dass in diesem Abschnitt der Begriff "Sie" allgemein verwendet wird, um jeden Benutzer in Ihrer Organisation zu bezeichnen, der für die Ausführung bestimmter Aufgaben verantwortlich ist. In einigen Fällen ist dies der Anwendungs-DBA, in anderen Fällen der Anwendungsentwickler.
Die autonome KI-Datenbank umfasst mehrere Features, mit denen die Performance Ihrer Datenbank automatisch überwacht, analysiert und optimiert wird. Eine vollständige Liste der Features für SQL Tuning und Performancemanagement von Oracle Autonomous AI Database sowie Anweisungen zu deren Verwendung finden Sie im Handbuch Oracle Database 19c SQL Tuning Guide oder im Oracle Database 26ai SQL Tuning Guide.
Eine umfassende Kategorisierung für die wichtigsten Leistungsoptimierungsfeatures der autonomen KI-Datenbank wird unten dargestellt.
Beschreibung der Abbildung hp_features.svg
Vordefinierte Datenbankservices
Die Verbindung zwischen Anwendung und Datenbank und die Codierung von SQL-Aufrufen an die Datenbank bestimmen die Gesamtperformance der Transaktionsverarbeitungs- und Berichtsvorgänge der Anwendung.
Wenn Sie Verbindungen zu Ihrer autonomen KI-Datenbank herstellen, hängt die Performance der Interaktion Ihrer Anwendung mit der Datenbank davon ab, mit welchem Datenbankservice Sie sich verbinden. Autonomous AI Database stellt mehrere Sets von Datenbankservices für die Verbindung mit der Datenbank bereit. Diese Verbindungsservices unterstützen verschiedene Arten von Datenbankvorgängen, wie unter Vordefinierte Datenbankservicenamens für autonome KI-Datenbanken beschrieben.
Tipp: Prüfen Sie die wichtigsten Eigenschaften der vordefinierten Datenbankservices und der Tabelle, in der die verschiedenen Sets von Datenbankservices basierend auf diesen Eigenschaften verglichen werden, um zu entscheiden, welcher Datenbankservice besser für die Performanceanforderungen Ihrer Anwendung geeignet ist.
Connection-Pools
Beim Herstellen von Verbindungen zu Ihrer autonomen KI-Datenbank können Sie Verbindungspools verwenden, um den Performance-Overhead beim wiederholten Erstellen und Löschen einzelner Verbindungen zu reduzieren. Dies ist ein weiterer Faktor, der große Auswirkungen auf die Performance der Interaktion Ihrer Anwendung mit der Datenbank hat.
Häufig wird die Verwendung von Verbindungspools nur beim Entwerfen oder Verbessern einer Anwendung für kontinuierliche Verfügbarkeit in Betracht gezogen. Die Verwendung von Verbindungspools anstelle einzelner Verbindungen kann jedoch fast jeder Transaktionsverarbeitungsanwendung zugutekommen. Ein Verbindungspool bietet die folgenden Vorteile:
-
Reduziert die Anzahl der neu erstellten Verbindungsobjekte.
-
Fördert die Wiederverwendung von Verbindungsobjekten.
-
Beschleunigt das Abrufen einer Verbindung.
-
Kontrolliert die Menge der für die Verwaltung von Verbindungen verwendeten Ressourcen.
-
Reduziert den Codierungsaufwand für die manuelle Verwaltung von Verbindungsobjekten.
Spezielle Verbindungsfeatures
Oracle Net Services (früher SQL*Net) bietet verschiedene Verbindungsfeatures zur Verbesserung der Performance in bestimmten Verbindungsszenarios. Diese Features werden in Oracle Database 19c Net Services Administrator's Guide oder Oracle Database 26ai Net Services Administrator's Guide beschrieben.
-
Colocation-Tagging ist ein Beispiel dafür, dass diese Features in bestimmten Transaktionsverarbeitungsanwendungen nützlich sind. Wenn Ihre Anwendung wiederholt Verbindungen zu demselben Datenbankservice herstellt, können solche Verbindungen durch Colocation-Tagging an dieselbe Datenbankinstanz weitergeleitet werden. Dabei wird die Load-Balancing-Verarbeitung umgangen, die normalerweise auf der Datenbankseite von Verbindungen erfolgt. Weitere Informationen finden Sie unter COLOCATION_TAG of Client Connections in Oracle Database 19c oder Oracle Database 26ai.
-
Shared Server-Konfiguration ist ein weiteres Feature, das Autonomous AI Database für die Verwaltung von Legacy-Anwendungen unterstützt, die ohne Verbindungspooling entwickelt wurden. Die Shared-Server-Architektur ermöglicht es dem Datenbankserver, mehreren Clientprozessen die gemeinsame Verwendung nur sehr weniger Serverprozesse zu erlauben. Dadurch wird die Anzahl der Benutzer erhöht, die von der Anwendung unterstützt werden können. Mit der Shared-Server-Architektur für solche Legacy-Anwendungen können diese vertikal skaliert werden, ohne die Anwendung selbst zu ändern.
Sie können Shared Server-Verbindungen beim Provisioning einer autonomen Containerdatenbank (ACD) aktivieren. Diese Einstellung gilt für alle darin erstellten Datenbanken. Anweisungen hierzu finden sie unter Autonome Containerdatenbank erstellen
Weitere Informationen zu Shared Servern, einschließlich Features wie Session Multiplexing, finden Sie auch im Oracle Database 19c Net Services Administrator's Guide oder im Oracle Database 26ai Net Services Administrator's Guide.
Nachdem die Shared Server-Verbindung für die autonome Containerdatenbank aktiviert wurde, ist keine Änderung der Verbindungszeichenfolge erforderlich. Die Standardkonfiguration ist auf "Dediziert" gesetzt.
Hinweis: Sie können keinen Shared Server für eine bestimmte autonome KI-Datenbank deaktivieren, die unter einer autonomen Shared Server-fähigen Containerdatenbank erstellt wurde. Außerdem können Sie keine dedizierte Verbindung für autonome KI-Datenbanken verwenden, die unter einer autonomen Shared Server-fähigen Containerdatenbank erstellt wurden.
SQL Performance Tuning – Features
Voraussetzung für gute Anwendungen ist ein gut geschriebener SQL-Code. Oracle Autonomous AI Database bietet zahlreiche Features, mit denen Sie leistungsstarke Anwendungen erstellen und Ihren SQL- und PL/SQL-Code validieren kann. Einige dieser Funktionen sind unten aufgeführt:
-
Automatische Indexierung
-
Optimizer-Statistiken und -Hinweise
-
Automatische Auflösung von SQL-Planregressionen
-
Automatische Quarantäne von fehlgeleiteten SQL-Anweisungen
-
SQL-Planmanagement
-
SQL Tuning Sets
-
SQL Trace
Bei der Entwicklung Ihrer Anwendung können Sie schnell erfahren, wie sich diese Features auf den von Ihnen geschriebenen SQL-Code auswirken. So können Sie Ihren Code verbessern, indem Sie das SQL Worksheet verwenden, das sowohl von Oracle Database Actions (das in Ihre Autonomous AI Database integriert ist) als auch von Oracle SQL Developer (eine kostenlose Anwendung, die Sie auf Ihrem Entwicklungssystem installieren) bereitgestellt wird.
SQL-Tracing
Wenn ein Anwendungsvorgang länger als erwartet dauert, können Sie durch das Abrufen eines Traces aller SQL-Anweisungen, die als Teil dieses Vorgangs ausgeführt werden, mit Details wie der Zeit, die diese SQL-Anweisung in den Parse-, Ausführungs- und Fetch-Phasen verbracht hat, die Ursache des Performanceproblems identifizieren und beheben. Dazu können Sie das SQL-Tracing in einer autonomen KI-Datenbank verwenden.
SQL-Tracing ist in der autonomen KI-Datenbank standardmäßig deaktiviert. Sie müssen es aktivieren, um mit der Erfassung der SQL-Tracingdaten zu beginnen. Ausführliche Anweisungen zum Aktivieren und Verwenden von SQL-Tracing finden Sie unter SQL-Tracing in autonomer KI-Datenbank verwenden.
Optimizer-Statistiken
Autonomous AI Database erfasst Optimizer-Statistiken automatisch, sodass Sie diese Aufgabe nicht manuell ausführen müssen. Dadurch wird sichergestellt, dass Statistiken immer aktuell sind. Die automatische Statistikerfassung ist in Autonomous AI Database aktiviert und wird in einem Standardwartungsfenster ausgeführt.
Hinweis: Weitere Informationen zu Wartungsfensterzeiten und zur automatischen Erfassung von Optimizer-Statistiken finden Sie imAdministratorhandbuch für Oracle Database 19c oder im Administratorhandbuch für Oracle Database 26ai. Weitere Informationen zu Optimizer-Statistiken finden Sie in Oracle Database 19c SQL Tuning Guide oder Oracle Database 26ai SQL Tuning Guide.
Optimizer-Hinweise
Optimizer-Hinweise sind besondere Kommentare in einer SQL-Anweisung, die Anweisungen an den Optimizer übergeben. Der Optimizer verwendet Hinweise, um einen Ausführungsplan für die Anweisung auszuwählen, sofern das nicht durch eine bestimmte Bedingung verhindert wird.
Autonomous AI Database-Standardwerte für den Optimizer und PARALLEL-Hinweise unterscheiden sich je nach Workload:
-
Autonomous AI Lakehouse: Autonomous AI Database mit Data Warehouse ignores-Optimizer-Hinweise und
PARALLEL-Hinweise in SQL-Anweisungen standardmäßig.Wenn die Anwendung auf Hinweisen basiert, können Sie Optimizer-Hinweise aktivieren, indem Sie den Parameter
OPTIMIZER_IGNORE_HINTSauf Session- oder Systemebene mitALTER SESSIONoderALTER SYSTEMaufFALSEsetzen.Beispiel: Mit dem folgenden Befehl können Sie Hinweise in der Session aktivieren:
ALTER SESSION SET OPTIMIZER_IGNORE_HINTS=FALSE;Sie können auch
PARALLEL-Hinweise in SQL-Anweisungen aktivieren, indem SieOPTIMIZER_IGNORE_PARALLEL_HINTSauf Session- oder Systemebene mitALTER SESSIONoderALTER SYSTEMaufFALSEsetzen.Beispiel: Mit dem folgenden Befehl aktivieren Sie
PARALLEL-Hinweise in der Session:ALTER SESSION SET OPTIMIZER_IGNORE_PARALLEL_HINTS=FALSE; -
Autonomous AI Transaction Processing: Autonomous AI Database beachtet Optimizer-Hints und
PARALLEL-Hinweise in SQL-Anweisungen standardmäßig.Sie können Optimizer-Hinweise deaktivieren, indem Sie den Parameter
OPTIMIZER_IGNORE_HINTSauf Session- oder Systemebene mitALTER SESSIONoderALTER SYSTEMaufTRUEsetzen.Beispiel: Der folgende Befehl deaktiviert Hinweise in der Session:
ALTER SESSION SET OPTIMIZER_IGNORE_HINTS=TRUE;Sie können
PARALLEL-Hinweise auch in SQL-Anweisungen deaktivieren, indem SieOPTIMIZER_IGNORE_PARALLEL_HINTSauf Session- oder Systemebene mitALTER SESSIONoderALTER SYSTEMaufTRUEsetzen.Beispiel: Mit dem folgenden Befehl aktivieren Sie
PARALLEL-Hinweise in der Session:ALTER SESSION SET OPTIMIZER_IGNORE_PARALLEL_HINTS=TRUE;
Automatische Indexierung
Die automatische Indexierung automatisiert die Indexverwaltungsaufgaben in der autonomen KI-Datenbank. Die automatische Indexierung ist in der autonomen KI-Datenbank standardmäßig deaktiviert.
Das manuelle Erstellen von Indizes erfordert umfassende Kenntnisse in Bezug auf Datenmodell, Anwendung und Datenverteilung. In der Vergangenheit waren DBAs für die Auswahl der zu erstellenden Indizes verantwortlich. Manchmal haben die DBAs ihre Auswahl nicht geändert oder Indizes nicht beibehalten, wenn sich die Bedingungen geändert haben. Dadurch gingen Verbesserungsmöglichkeiten verloren, und die Verwendung unnötiger Indizes konnte die Performance beeinträchtigen.
Das Feature für die automatische Indexierung in Autonomous AI Database überwacht die Anwendungs-Workload und erstellt und verwaltet Indizes automatisch.
Tip: For a “try it out” alternative that demonstrates these instructions, run Lab 14: Automatic Indexing in the Oracle Autonomous AI Database Dedicated for Developers and Database Users Workshop.
Automatische Indizierung aktivieren
-
Verwenden Sie die Prozedur
DBMS_AUTO_INDEX.CONFIGURE, um die automatische Indexierung zu aktivieren. Beispiel: Wenn Sie die folgende Anweisung ausführen, wird die automatische Indexierung in einer Datenbank aktiviert. Dadurch werden neue automatische Indizes als sichtbare Indizes erstellt, sodass sie in SQL-Anweisungen verwendet werden können.EXEC DBMS_AUTO_INDEX.CONFIGURE('AUTO_INDEX_MODE','IMPLEMENT'); -
Mit dem Package
DBMS_AUTO_INDEXkönnen Sie Berichte zur automatischen Aufgabe erstellen und Voreinstellungen für die automatische Indexierung festlegen. Hinweis: Hinweis: Wenn das automatische Indexieren aktiviert ist, ist die Indexkomprimierung für automatische Indizes standardmäßig aktiviert.
Automatische Indizierung deaktivieren
Verwenden Sie die Prozedur DBMS_AUTO_INDEX.CONFIGURE, um die automatische Indexierung zu deaktivieren. Beispiel: Wenn Sie die folgende Anweisung ausführen, wird die automatische Indexierung in einer Datenbank deaktiviert, sodass keine neuen automatischen Indizes erstellt werden. Die vorhandenen automatischen Indizes bleiben jedoch aktiviert.
EXEC DBMS_AUTO_INDEX.CONFIGURE('AUTO_INDEX_MODE','OFF');
Weitere Informationen finden Sie unter Managing Auto Indexes im Oracle Database 19c Administrator's Guide oder im Oracle Database 26ai Administrator's Guide.
Schnelle Aufnahme
Die schnelle Aufnahme optimiert die Verarbeitung hochfrequenter, einzeiliger Dateneinfügungen in eine Datenbank. Die schnelle Aufnahme verwendet den großen Pool, um die Einfügungen zu puffern, bevor sie auf die Platte geschrieben werden, um die Performance beim Einfügen von Daten zu verbessern.
Das Ziel von Fasting ist es, Anwendungen zu unterstützen, die viele Informationsdaten generieren, die einen wichtigen Wert im Aggregat haben, aber nicht unbedingt vollständige ACID-Garantien erfordern. Viele Anwendungen im Internet der Dinge (Internet of Things, IoT) haben eine schnelle Arbeitslast vom Typ "Feuern und Vergessen", wie Sensordaten, Smart Meter-Daten oder sogar Verkehrskameras. Für diese Anwendungen können Daten für eine spätere Analyse in großen Volumes gesammelt und in die Datenbank geschrieben werden.
Die schnelle Aufnahme unterscheidet sich sehr von der normalen Oracle AI Database-Transaktionsverarbeitung, bei der Daten protokolliert werden und nie verloren gehen, wenn sie in die Datenbank geschrieben werden (d. h. festgeschrieben). Um den maximalen Aufnahmedurchsatz zu erreichen, werden die normalen Oracle-Transaktionsmechanismen umgangen. Die Anwendung muss prüfen, ob alle Daten tatsächlich in die Datenbank geschrieben wurden. Es wurden spezielle APIs hinzugefügt, die aufgerufen werden können, um zu prüfen, ob die Daten in die Datenbank geschrieben wurden.
Einen Überblick über die schnelle Aufnahme und die Schritte zur Verwendung dieses Features finden Sie unter Fast Ingest verwenden in Oracle Database 19c Performance Tuning Guide oder Oracle Database 26ai Performance Tuning Guide.
Um eine schnelle Aufnahme in Ihre autonome KI-Datenbank zu verwenden, müssen Sie:
-
Optimizer für die Verwendung von Hints aktivieren: Setzen Sie den Parameter
optimizer_ignore_hintsauf Session- oder Systemebene aufFALSE.Je nach Workload-Typ der autonomen KI-Datenbank kann
optimizer_ignore_hintsstandardmäßig auf Systemebene aufFALSEgesetzt werden. Weitere Informationen finden Sie unter Optimizer-Statistiken. -
Tabelle für schnelle Aufnahme erstellen: In der Dokumentation Oracle Database 19c Performance Tuning Guide oder in der Dokumentation Oracle Database 26ai Performance Tuning Guide werden die Einschränkungen beschrieben, mit denen Tabellen für die schnelle Aufnahme in Frage kommen (Tabellen mit den angegebenen Eigenschaften können keine schnelle Aufnahme verwenden).
Vordefinierte Jobklassen mit Oracle Scheduler
Die autonome KI-Datenbank enthält vordefinierte job_class-Werte für die Verwendung mit Oracle Scheduler. Mit diesen Job-Klassen können Sie Jobs, die gemeinsame Merkmale und Verhaltensweisen aufweisen, in größeren Entitys gruppieren, sodass Sie zwischen diesen Klassen Prioritäten setzen können, indem Sie die Ressourcen steuern, die jeder Klasse zugewiesen sind.
Mit vordefinierten Jobklassen können Sie sicherstellen, dass Ihre kritischen Jobs Priorität haben und genügend Ressourcen vorhanden sind. Beispiel: Damit ein kritisches Projekt ein Data Warehouse lädt, können Sie alle Data Warehousing-Jobs in einer Klasse kombinieren und sie durch die Zuweisung eines hohen Prozentsatzes der verfügbaren Ressourcen gegenüber anderen Jobs priorisieren. Sie können den Jobs innerhalb einer Jobklasse auch relative Prioritäten zuweisen.
Die vordefinierten job_class-Werte, TPURGENT, TP, HIGH, MEDIUM und LOW werden den entsprechenden Nutzungsgruppen zugeordnet. Mit diesen Jobklassen können Sie die Nutzungsgruppe angeben, in der ein Job ausgeführt wird, mit DBMS_SCHEDULER.CREATE_JOB.
Die Prozedur DBMS_SCHEDULER.CREATE_JOB unterstützt die Jobtypen PLSQL_BLOCK und STORED_PROCEDURE für den Parameter job_type in der autonomen KI-Datenbank.
Beispiel: Erstellen Sie einen einzelnen regulären Job, der in der Nutzungsgruppe HIGH ausgeführt werden soll:
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;
/
Hinweise für Oracle Scheduler:
-
Um
DBMS_SCHEDULER.CREATE_JOBzu verwenden, sind möglicherweise zusätzliche Berechtigungen für bestimmte Rollen oder Berechtigungen erforderlich. DerADMIN-Benutzer und die Benutzer mitDWROLEverfügen über die erforderlichenCREATE SESSION- undCREATE JOB-Berechtigungen. Wenn ein Benutzer nicht überDWROLEverfügt, sind Berechtigungen für die BerechtigungenCREATE SESSIONundCREATE JOBerforderlich. -
Das Jobattribut
instance_idwird für Oracle Scheduler-Jobs ignoriert, die in Autonomous AI Database ausgeführt werden.
Weitere Informationen zu Oracle Scheduler und DBMS_SCHEDULER.CREATE_JOB finden Sie unter Jobs mit Oracle Scheduler planen in Oracle Database 19c oder Oracle Database 26ai .
Informationen zu Jobattributen finden Sie unter SET_ATTRIBUTE-Prozedur in Oracle Database 19c oder Oracle Database 26ai.
Tools für Performanceüberwachung und -optimierung
Verschiedene Situationen, wie geänderte Workloads, Ressourceneinschränkungen auf Anwendungs- und Datenbankservern oder einfach Netzwerkengpässe, können zu Problemen bei der Anwendungsperformance führen. Oracle bietet eine Vielzahl von Tools, mit denen Sie die Performance überwachen, Performanceprobleme diagnostizieren und die Anwendung oder Datenbank optimieren können, um das Problem zu lösen. Einige davon sind unten aufgeführt:
| Tool | Details |
|---|---|
| Performancehub | Ein leicht verfügbares, funktionsreiches Tool, das in der Oracle Cloud Infrastructure-(OCI-)Konsole verfügbar ist. Der Performancehub ist auch mit Oracle Database Actions und Oracle Enterprise Manager integriert. Weitere Informationen finden Sie unter Datenbankperformance mit Performancehub überwachen. |
| Metriken der autonomen KI-Datenbank | Mit die Metriken der autonomen KI-Datenbank können Sie nützliche quantitative Daten messen, wie CPU- und Speicherplatzauslastung, die Anzahl erfolgreicher und nicht erfolgreiche Datenbankanmelde- und -verbindungsversuche, Datenbankvorgänge, SQL-Abfragen und -transaktionen usw. Mit Metrikdaten können Sie Probleme mit Ihren autonomen KI-Datenbankressourcen diagnostizieren und beheben. Unter Datenbanken mit autonomen KI-Datenbankmetriken überwachen finden Sie weitere Informationen, wie Voraussetzungen, Nutzung und die Liste der Metriken, die für die autonome KI-Datenbank auf einer dedizierten Exadata-Infrastruktur verfügbar sind. |
| Automatic Workload Repository (AWR) und Automatic Database Diagnostic Monitor (ADDM) | Zwei weitere häufig verwendete Tools sind Automatic Workload Repository (AWR) und Automatic Database Diagnostic Monitor (ADDM). AWR speichert performancebezogene Statistikinformationen für eine Oracle-Datenbank. ADDM ist ein Diagnosetool, das die AWR-Daten regelmäßig analysiert, die Ursachen von Performanceproblemen ermittelt, Empfehlungen zur Behebung der Probleme bereitstellt und unproblematische Bereiche des Systems identifiziert. Da AWR ein Repository historischer Performancedaten ist, kann ADDM Performanceprobleme nach dem Ereignis analysieren. Dies spart häufig Zeit und Ressourcen bei der Reproduktion eines Problems. Anweisungen zur Verwendung dieser Tools sowie detaillierte Informationen zur Überwachung und Optimierung der Datenbankperformance finden Sie in der Dokumentation Oracle Database 19c Performance Tuning Guide oder in der Dokumentation Oracle Database 26ai Performance Tuning Guide. AWR und ADDM sind auch über Performancehub verfügbar. Weitere Informationen finden Sie unter Datenbankperformance mit Performancehub überwachen. Eine kurze Einführung in die Überwachung und Optimierung der Datenbankperformance finden Sie in der Dokumentation Oracle Database 19c 2 Day + Performance Tuning Guide oder in der Dokumentation Oracle Database 26ai 2 Day + Performance Tuning Guide. |