Features für hohe Performance in Autonomous Database on Dedicated Exadata Infrastructure
In diesem Artikel werden die wichtigsten Features zur Leistungsoptimierung in Autonomous 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.
Autonomous Database 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 Performance Management von Oracle Autonomous Database sowie Anweisungen zu deren Verwendung finden Sie im Handbuch zum SQL Tuning für Oracle Database 19c oder im Handbuch zum SQL Tuning für Oracle Database 23ai.
Im Folgenden finden Sie eine umfassende Kategorisierung für die wichtigsten Features zur Leistungsoptimierung von Autonomous Database.
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.
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 Autonomous Database 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
-
Colocation-Tagging ist eines dieser Features und bei bestimmten Transaktionsverarbeitungsanwendungen nützlich. 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 23ai.
-
Shared-Server-Konfiguration ist ein weiteres Feature, das Autonomous Database zur Verwaltung von Legacy-Anwendungen unterstützt, die ohne Verbindungspools 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 in der Administratordokumentation zu Oracle Database 19c Net Services oder in der Administratordokumentation zu Oracle Database 23ai Net Services.
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 einen Shared Server nicht für eine bestimmte Autonomous Database-Instanz deaktivieren, die unter einer autonomen Containerdatenbank mit aktiviertem Shared Server erstellt wurde, und Sie können keine dedizierte Verbindung für Autonomous Database-Instanzen verwenden, die unter einer autonomen Containerdatenbank mit aktiviertem Shared Server erstellt wurden.
Features des SQL-Performancetunings
Voraussetzung für gute Anwendungen ist ein gut geschriebener SQL-Code. Oracle Autonomous Database bietet zahlreiche Features, mit denen Sie leistungsstarke Anwendungen erstellen und Ihren SQL- und PL/SQL-Code validieren können. Einige dieser Funktionen werden 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 mit dem SQL Worksheet verbessern, das sowohl von Oracle Database Actions (der in Autonomous 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 mit einem Trace aller im Rahmen dieses Vorgangs ausgeführten SQL-Anweisungen mit Details wie der Zeit, die diese SQL-Anweisung in den Parse-, Ausführungs- und Abrufphasen verbracht hat, die Ursache des Performanceproblems identifizieren und beheben. Um dies zu erreichen, können Sie SQL-Tracing in einer Autonomous Database verwenden.
SQL-Tracing ist in Autonomous Database standardmäßig deaktiviert. Sie müssen es aktivieren, um mit dem Erfassen der SQL-Tracingdaten zu beginnen. Ausführliche Anweisungen zum Aktivieren und Verwenden von SQL-Tracing finden Sie unter SQL-Tracing in Autonomous Database verwenden.
Optimizer-Statistiken
Autonomous Database erfasst Optimizer-Statistiken automatisch, sodass Sie diese Aufgabe nicht manuell ausführen müssen. Auf diese Weise wird sichergestellt, dass Statistiken stets aktuell sind. Die automatische Statistikerfassung ist in Autonomous Database aktiviert und wird in einem Standardwartungsfenster ausgeführt.
Hinweis:
Weitere Informationen zu Wartungsfensterzeiten und zur automatischen Erfassung von Optimizer-Statistiken finden Sie im Administratorhandbuch für Oracle Database 19c oder im Administratorhandbuch für Oracle Database 23ai.
Weitere Informationen zu Optimizer-Statistiken finden Sie im Handbuch zum SQL Tuning für Oracle Database 19c oder im Handbuch zum SQL Tuning für Oracle Database 23ai.
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.
PARALLEL
-Hinweise unterscheiden sich je nach Workload:
-
Autonomous Data Warehouse: Autonomous 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 mitALTER SESSION
oderALTER SYSTEM
aufFALSE
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 SieOPTIMIZER_IGNORE_PARALLEL_HINTS
auf Session- oder Systemebene mitALTER SESSION
oderALTER SYSTEM
aufFALSE
setzen.Beispiel: Mit dem folgenden Befehl aktivieren SiePARALLEL
-Hinweise in der Session:ALTER SESSION SET OPTIMIZER_IGNORE_PARALLEL_HINTS=FALSE;
-
Autonomous Transaction Processing: Autonomous Database honors 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 mitALTER SESSION
oderALTER SYSTEM
aufTRUE
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 SieOPTIMIZER_IGNORE_PARALLEL_HINTS
auf Session- oder Systemebene mitALTER SESSION
oderALTER SYSTEM
aufTRUE
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 Database. Die automatische Indexierung ist in Autonomous 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 Database überwacht die Anwendungs-Workload und erstellt und verwaltet Indizes automatisch.
Tipp:
Als Alternative können Sie Lab 14: Automatic Indexing im Oracle Autonomous Database Dedicated for Developers and Database Users Workshop ausführen, um diese Anweisungen auszuprobieren.- 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.
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 in der Dokumentation Oracle Database 19c Administrator's Guide oder im Oracle Database 23ai 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 stark von der normalen Oracle Database-Transaktionsverarbeitung, bei der Daten protokolliert und nie verloren gehen, sobald sie in die Datenbank "geschrieben" wurden (also festgeschrieben wurden). Um den maximalen Aufnahmedurchsatz zu erreichen, werden die normalen Oracle-Transaktionsmechanismen umgangen, und 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 der Dokumentation Oracle Database 19c Performance Tuning Guide oder Oracle Database 23ai Performance Tuning Guide.
-
Optimizer zur Verwendung von Hints aktivieren: Setzen Sie den Parameter
optimizer_ignore_hints
auf Session- oder Systemebene aufFALSE
.Je nach Workload-Typ von Autonomous Database kann
optimizer_ignore_hints
standardmäßig auf Systemebene aufFALSE
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 im Oracle Database 23ai Performance Tuning Guide finden Sie die Einschränkungen für Tabellen, die für schnelle Aufnahme in Frage kommen (Tabellen mit den angegebenen Eigenschaften können keine schnelle Aufnahme verwenden).
Vordefinierte Jobklassen mit Oracle Scheduler
Autonomous Database enthält vordefinierte job_class
-Werte für die Verwendung mit Oracle Scheduler. Mit diesen Tätigkeitsklassen können Sie Jobs mit gemeinsamen Merkmalen und Verhalten in größeren Entitys gruppieren, sodass Sie Prioritäten für diese Klassen festlegen 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 die Jobtypen PLSQL_BLOCK
und STORED_PROCEDURE
für den Parameter job_type
in Autonomous 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 BenutzerADMIN
und die Benutzer mitDWROLE
verfügen über die erforderlichen BerechtigungenCREATE SESSION
undCREATE JOB
. Wenn ein Benutzer nicht überDWROLE
verfügt, sind Berechtigungen fürCREATE SESSION
undCREATE JOB
erforderlich. -
Das Jobattribut
instance_id
wird für Oracle Scheduler-Jobs ignoriert, die in Autonomous 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 23ai.
Informationen zu Jobattributen finden Sie unter Prozedur SET_ATTRIBUTE in Oracle Database 19c oder Oracle Database 23ai.
Tools für Performanceüberwachung und -optimierung
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 Database-Metriken |
Mit den Autonomous Database-Metriken können Sie nützliche quantitative Daten messen, wie CPU- und Speicherauslastung, die Anzahl erfolgreicher und nicht erfolgreicher Datenbankanmeldung und -verbindung, Datenbankvorgänge, SQL-Abfragen und -Transaktionen usw. Anhand der Metrikdaten können Sie Probleme mit Ihren Autonomous Database-Ressourcen diagnostizieren und beheben. Weitere Informationen wie Voraussetzungen, Nutzung und die Liste der für Autonomous Database on Dedicated Exadata Infrastructure verfügbaren Metriken finden Sie unter Datenbanken mit Autonomous Database-Metriken. |
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 der Datenbankperformance finden Sie im Handbuch zu Oracle Database 19c Performance Tuning oder im Handbuch zu Oracle Database 23ai Performance Tuning. AWR und ADDM sind auch über Performancehub verfügbar. Weitere Informationen finden Sie unter Datenbankperformance mit Performancehub überwachen. Eine schnelle Einführung in die Überwachung und Optimierung der Datenbankperformance finden Sie im Handbuch für Oracle Database 19c 2 Day + Performanceoptimierung oder im Handbuch für Oracle Database 23ai 2 Day + Performanceoptimierung. |