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 für jeden Benutzer in Ihrer Organisation verwendet wird, der für die Ausführung bestimmter Aufgaben verantwortlich ist. In einigen Fällen ist das der Anwendungs-DBA, in anderen Fällen der Anwendungsentwickler.

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 in Oracle Database 19c SQL Tuning Guide oder im Oracle Database 26ai SQL Tuning Guide.

Eine umfassende Kategorisierung für die wichtigsten Performanceoptimierungsfeatures von Autonomous AI Database wird unten dargestellt.

Tipp:

In der folgenden Abbildung können Sie auf die Funktion klicken, die Sie weiter untersuchen möchten.


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 von dem Datenbankservice ab, mit dem Sie eine Verbindung herstellen. Autonome KI-Datenbank 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 Merkmale der vordefinierten Datenbankservices und die Tabelle, in der die verschiedenen Sets von Datenbankservices anhand dieser Merkmale verglichen werden, um zu entscheiden, welcher Datenbankservice für die Performanceanforderungen Ihrer Anwendung besser geeignet ist.

Connection-Pools

Wenn Sie Verbindungen zu Ihrer autonomen KI-Datenbank herstellen, 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 von Clientverbindungen 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 Connection Pooling 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 Autonomous Containerdatenbank erstellen.

    Ausführliche 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 Ihre autonome Containerdatenbank aktiviert wurde, ist eine Änderung der Verbindungszeichenfolge nicht erforderlich. Die Standardkonfiguration ist auf Dedicated 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.

Features des SQL-Performancetunings

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. Verbessern Sie Ihren Code daher mit dem SQL Worksheet, das sowohl von Oracle Database Actions (das in Ihre Autonomous AI Database integriert ist) als auch von Oracle SQL Developer (einer kostenlosen 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 SQL-Tracing in einer autonomen KI-Datenbank verwenden.

SQL-Tracing ist in Autonomous AI Database 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 Autonomous AI Database verwenden.

Optimizer-Statistiken

Autonome KI-Datenbank 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 in Administratorhandbuch für Oracle Database 19c oder im Administratorhandbuch für Oracle Database 26ai.

Weitere Informationen zu Optimizer-Statistiken finden Sie in der Dokumentation Oracle Database 19c SQL Tuning Guide oder im 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.

Autonome AI-Datenbank-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_HINTS auf Session- oder Systemebene mit ALTER SESSION oder ALTER SYSTEM auf FALSE setzen.

    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 Sie OPTIMIZER_IGNORE_PARALLEL_HINTS auf Session- oder Systemebene mit ALTER SESSION oder ALTER SYSTEM auf FALSE setzen.

    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 Ehren-Optimizer-Hinweise und PARALLEL-Hinweise in SQL-Anweisungen standardmäßig.

    Sie können Optimizer-Hinweise deaktivieren, indem Sie den Parameter OPTIMIZER_IGNORE_HINTS auf Session- oder Systemebene mit ALTER SESSION oder ALTER SYSTEM auf TRUE setzen.

    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 Sie OPTIMIZER_IGNORE_PARALLEL_HINTS auf Session- oder Systemebene mit ALTER SESSION oder ALTER SYSTEM auf TRUE setzen.

    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 Autonomous AI Database. Die automatische Indexierung ist in Autonomous AI Database 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.

Tipp:

Als Alternative kann Sie Lab 14: Automatic Indexing im Oracle Autonomous AI Database Dedicated for Developers and Database Users Workshop ausführen, um diese Anweisungen auszuprobieren.
Automatische Indexierung 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_INDEX können Sie Berichte zur automatischen Aufgabe erstellen und Voreinstellungen für die automatische Indexierung festlegen.

    Hinweis:

    Wenn die automatische Indexierung aktiviert ist, wird die Indexkomprimierung für automatische Indizes standardmäßig aktiviert.
Automatische Indexierung 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 Datenaufnahme

Die schnelle Datenaufnahme optimiert die Verarbeitung hochfrequenter Einfügevorgänge von einzeiligen Daten in eine Datenbank. Bei der schnellen Datenaufnahme werden Einfügevorgänge im Large Pool gepuffert, bevor sie auf Datenträger geschrieben werden, um die Performance beim Einfügen von Daten zu verbessern.

Das Ziel von Fast-Uningest 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 of Things (IoT) haben eine schnelle Arbeitslast vom Typ "Feuer und Vergessen", wie Sensordaten, Smart Meter-Daten oder sogar Verkehrskameras. Für diese Anwendungen können Daten zur späteren Analyse in großen Mengen erfasst 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 mit Ihrer autonomen KI-Datenbank zu verwenden, müssen Sie:
  • Optimizer zur Verwendung von Hints aktivieren: Setzen Sie den Parameter optimizer_ignore_hints auf Session- oder Systemebene auf FALSE.

    Je nach Workload-Typ der autonomen KI-Datenbank kann optimizer_ignore_hints standardmäßig auf Systemebene auf FALSE gesetzt 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

Autonomous AI Database 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 für den Abschluss vorhanden sind. Beispiel: Damit ein kritisches Projekt ein Data Warehouse lädt, können Sie alle Data Warehousing-Jobs in einer Klasse kombinieren und gegenüber anderen Jobs priorisieren, indem Sie einen hohen Prozentsatz der verfügbaren Ressourcen zuweisen. Sie können den Jobs innerhalb einer Jobklasse auch relative Prioritäten zuweisen.

Die vordefinierten job_class-Werte TPURGENT, TP, HIGH, MEDIUM und LOW sind den entsprechenden Consumer-Gruppen zugeordnet. Mit diesen Jobklassen können Sie die Consumer-Gruppe angeben, in der ein Job mit DBMS_SCHEDULER.CREATE_JOB ausgeführt wird.

Die Prozedur DBMS_SCHEDULER.CREATE_JOB unterstützt PLSQL_BLOCK- und STORED_PROCEDURE-Jobtypen für den Parameter job_type in Autonomous AI Database.

Beispiel: Verwenden Sie Folgendes, um einen einzelnen regulären Job zu erstellen, der in der Consumer-Gruppe 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 zu Oracle Scheduler:

  • Um DBMS_SCHEDULER.CREATE_JOB zu verwenden, müssen möglicherweise zusätzliche Rechte für bestimmte Rollen oder Berechtigungen erteilt werden. Der Benutzer ADMIN und die Benutzer mit DWROLE verfügen über die erforderlichen Berechtigungen CREATE SESSION und CREATE JOB. Wenn ein Benutzer nicht über DWROLE verfügt, sind Berechtigungen für CREATE SESSION und CREATE JOB erforderlich.

  • Das Jobattribut instance_id wird 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 Prozedur SET_ATTRIBUTE 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 Performanceproblemen bei Anwendungen 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 werden unten aufgeführt:
Tool Details
Performancehub

Ein leicht verfügbares Tool mit umfangreichen Features, das in der Oracle Cloud Infrastructure-(OCI-)Konsole verfügbar ist. Performance Hub ist auch in Oracle Database Actions und Oracle Enterprise Manager integriert.

Weitere Informationen finden Sie unter Datenbankperformance mit Performancehub überwachen.

Autonomous AI Database-Metriken

Mit die Metriken des Autonomous AI Database-Service können Sie nützliche quantitative Daten messen, wie CPU- und Speicherplatzauslastung, die Anzahl erfolgreicher und nicht erfolgreich erfolgreicher Datenbankanmelde- und -verbindungsversuche, Datenbankvorgänge, SQL-Abfragen und -Transaktionen usw. Anhand der Metrikdaten können Sie Probleme mit Ihren autonomen KI-Datenbankressourcen diagnostizieren und beheben.

Weitere Informationen, wie Voraussetzungen, Nutzung und die Liste der Metriken, die für Autonomous AI Database on Dedicated Exadata Infrastructure verfügbar sind, finden Sie unter Datenbanken mit autonomen KI-Datenbankmetriken überwachen.

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 Statistiken 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 aus historischen Performancedaten ist, kann ADDM Performanceprobleme nach dem Ereignis analysieren und dabei häufig Zeit und Ressourcen für die Reproduktion eines Problems sparen.

Anweisungen zur Verwendung dieser Tools sowie detaillierte Informationen zur Überwachung und Optimierung von Datenbankperformance finden Sie im Oracle Database 19c Performance Tuning Guide oder im 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 schnelle Einführung in das Monitoring und die Optimierung der Datenbankperformance finden Sie im Handbuch für Oracle Database 19c 2 Day + Performance Tuning oder im Handbuch für Oracle Database 26ai 2 Day + Performance Tuning.