Oracle Database 12c: Leistungsoptimierung

    Datenbankzeit


    Bevor Sie über die Optimierung der Datenbankleistung sprechen, müssen Sie erläutern, wie diese Leistung gemessen wird, zumal bei vielen mit Datenbanken verbundenen Personen immer noch der Indikator "Antwortzeit" angezeigt wird, den viele Personen als universelles Maß für die DBMS-Leistung ansehen.



    Das Problem mit der sogenannten Reaktionszeit ist, dass sie leider relativ ist. Für den Endbenutzer, Systemadministrator, Netzwerkadministrator und Datenbankadministrator ist dies unterschiedlich und hängt nicht nur von der reinen DBMS-Antwortzeit ab, sondern auch von der Leistung des Geschäftslogikcodes auf dem Anwendungsserver, der Leistung der Webschnittstelle, der Interaktion der Netzwerkinfrastrukturkomponenten und der Firewall , Lastenausgleich usw. Um die Datenbankleistung angemessen auszudrücken, müssen Sie daher den Datenbankzeitindikator verwenden, der die vom DBMS für die Ausführung aufgewendete Zeit angibt Füllen eines bestimmten Anrufs (Anfrage) ab dem Moment, in dem er in der Datenbank eintrifft, bis zum letzten Fragment der Ergebnisauswahl. Eine strengere Definition der Datenbankzeit ist die Gesamtzeit,



    Das Konzept der Datenbankzeit wird auf der Seite "Top-Aktivität" in Enterprise Manager (Abbildung 1) perfekt dargestellt. Dort sehen Sie die Anzahl der aktiven Sitzungen und in Form eines farbigen Diagramms die Verteilung der aufgewendeten DBMS-Zeit, d. H. tatsächlich Datenbankzeit.

    Anpassungstools: Gestern und heute


    Zuvor war der DBMS-Optimierungsprozess mit dem Umherirren im Dunkeln vergleichbar - Administratoren versuchten, bestimmte Optimierungsparameter anzuwenden, die ihrer Meinung nach das Optimierungsverhalten beeinflussen könnten, variierten ihre Werte und konzentrierten sich auf das Feedback von Endbenutzern, die Änderungen nicht immer zum Besseren bemerkten oder die schlimmste Seite.

    Mithilfe der modernen Leistungsoptimierungsmethode mit der Bezeichnung Find-Fix-Validate (Abbildung 2) können Sie Leistungsprobleme mithilfe der DBMS-Leistungsanalysetools genau diagnostizieren, mithilfe der im Tuning Pack enthaltenen Tools für die automatische Leistungsoptimierung beheben und die Richtigkeit der durchgeführten Maßnahmen überprüfen Tests sind im Paket Real Application Testing enthalten.



    Auf der Suche nach einem Problem


    Die neuesten Versionen von Oracle DBMS, einschließlich Oracle Database 12c, sind buchstäblich „an Leistungssensoren gebunden“ und berichten neben ihrer Hauptarbeit (Abfragen, Optimierung, Ausgabe von Ergebnissen, Koordination von Benutzeraktionen) ständig darüber, was sie tun - sie veröffentlichen Warteereignisse und Zeitcharakteristika von Anrufen. Daher ist immer genau bekannt, wie viel Zeit das DBMS für eine bestimmte Aktivität aufgewendet hat.

    Ich muss sagen, dass Oracle diese Gelegenheit sehr elegant genutzt und keine eigene Sprache für den Zugriff auf Diagnoseinformationen erfunden hat, sondern sie in Form spezieller Datenbanktabellen entworfen hat, auf die über die SQL-Sprache und die grafische Oberfläche von Enterprise Manager 12c zugegriffen werden kann . Dadurch werden Überwachung, Diagnose und die Suche nach den Hauptursachen verschiedener Probleme für Benutzer von Oracle DBMS maximal vereinfacht.

    Es gibt viele Tabellen, die die notwendigen Informationen enthalten, mehrere hundert bereits, die Statistiken in ihnen sind eher verstreut und auch akkumulativ. Natürlich müssen die Indikatoren nicht manuell verglichen werden, da ein spezielles Diagnose-Repository (Automatic Workload Repository, AWR) für die vergleichende Analyse der Daten entwickelt wurde, das regelmäßig (standardmäßig stündlich) Diagnoseinformationen aus den Tabellen entfernt - verschiedene Warteklassen, Metriken, grundlegende Statistiken, Statistiken über SQL-Abfragen und so weiter. AWR-Daten werden in der Datenbank gespeichert und für Diagnoseberichte verwendet. Mit der AWR Baselines-Technologie können Sie Referenzzeitintervalle erstellen, indem Sie Geschäftsvorgänge vergleichen, z. B. Betriebsschluss, Berichtszeitraum, Gehaltsabrechnung usw. Führen Sie in Abständen von AWR-Schnappschüssen regelmäßig eine vergleichende Leistungsanalyse für das ausgewählte Intervall durch. Diese Technologie ermöglicht eine schnellere Analyse von Lastschwankungen und erleichtert die Diagnose der Datenbankleistung.

    Der AWR-Bericht wird standardmäßig im HTML-Format gespeichert (Abbildung 3, links). Es gibt einen neuen Berichtstyp, den sogenannten Performance Hub, der die Statistiken der Datenbank in einer praktischen und übersichtlichen grafischen Form anzeigt (Abbildung 3, rechts).



    Oracle Database 12.1.0.2 führt eine weitere neue, sehr praktische Form des AWR-Berichts ein - den Active-HTML-Bericht. Es kombiniert die Navigations- und Drilldown-Funktionen von Enterprise Manager für die Offline-Analyse. Es kann wie andere aktive Berichte gespeichert und per E-Mail versendet werden und erfordert keine Anzeige durch Enterprise Manager.

    AWR Warehouse ist das zentrale Repository für die Langzeitspeicherung von AWR-Daten. Es wird in einer separaten, dedizierten Datenbank gespeichert. Auf diese Weise können Sie die Speicherdauer von AWR-Bildern mindestens unbegrenzt verlängern, um den Verlauf zu analysieren, zu sehen, was vor einem Jahr, vor zwei Jahren usw. geschehen ist. AWR Warehouse ist in alle Leistungsbildschirme der Enterprise-Datenbank integriert Manager und ermöglicht es Ihnen, einen Vergleichsbericht für einen beliebigen Zeitraum zu erhalten.

    Die ASH-Funktionalität (Active Session History) ist ein Überwachungstool, das in Oracle Database 10g eingeführt wurde. ASH erstellt jede Sekunde Momentaufnahmen des Status aktiver Sitzungen und schreibt sie in eine spezielle Speicherstruktur (siehe Tabelle 1). In der Praxis ist dies eine Echtzeitüberwachung. Enterprise Manager 12c bietet eine sehr benutzerfreundliche grafische Oberfläche für den Verlauf aktiver Sitzungen mit dem Namen ASH Analytics.



    Mit dem in die Datenbank integrierten ADDM-Advisor (Automatic Database Diagnostic Monitor) können Sie Diagnosen interpretieren und die Hauptursache für schlechte Leistung ermitteln. Der AWR-Bericht selbst ist ein ziemlich umfangreiches Dokument, das leicht zu verwechseln ist. Mit ADDM können Sie im Workload-Repository gespeicherte Statistiken interpretieren und die Hauptursache für die Probleme ermitteln. ADDM analysiert den Verbrauch der Datenbankzeit, korreliert ihn mit der Sitzungsaktivität und generiert einen Bericht mit spezifischen Empfehlungen. Es ist wichtig, dass ADDM Sie nicht nur über Probleme mit der Datenbankleistung informiert, sondern auch die Ursachen der Probleme identifiziert und nach dem Grad ihres Einflusses sortiert.

    Schließlich hat Oracle Database 12 eine verbesserte Version von Real-Time ADDM eingeführt, die automatisch gestartet wird, wenn die Schwellenwerte mehrerer Parameter überschritten werden, z. B. Anzahl der Sitzungen, übermäßiger CPU-Zeitverbrauch, Konflikte und andere Ereignisse, die die Datenbankleistung beeinträchtigen. Das neue Echtzeit-ADDM bietet die automatische Erkennung und Analyse von Problemen in Echtzeit sowie die automatische Diagnose schwerwiegender Leistungsprobleme.

    ADDM-Berichte werden zur Verlaufsanalyse in AWR-Repositorys gespeichert. Real-Time ADDM ist auch ein Notfall-Überwachungstool, das, wenn keine normale Verbindung zur Datenbank hergestellt werden kann - wenn es "blockiert" ist - eine spezielle Diagnoseverbindung ausführen und die Diagnose direkt aus dem DBMS-Speicher entfernen kann. Der in die Datenbank integrierte Advisor hilft bei der Diagnose von Problemen und der Ermittlung ihrer Ursache. Es ist immer besser, die Analyse mit einem ADDM-Bericht zu starten, da dieser Informationen von AWR und ASH in einer Form enthält, die für die anfängliche Leistungsanalyse geeignet ist.

    Für eine detaillierte Analyse der Ausführung von SQL-Abfragen in Enterprise Manager gibt es ein Echtzeit-SQL-Überwachungsfenster, in dem Sie überwachen können, wie eine bestimmte SQL-Abfrage ausgeführt wird, nach welchem ​​Plan sie ausgeführt wird und in welchem ​​Schritt des Ausführungsplans die meisten Ressourcen verbraucht werden. Die Echtzeit-SQL-Überwachung verfügt über einige sehr interessante Metriken, z. B. tatsächliche und geschätzte Zeilen. Mit der Echtzeit-SQL-Überwachung können Sie auch die Ausführung von PL / SQL-Prozeduren steuern.

    Wir beheben das Problem


    Die Praxis zeigt, dass die meisten Probleme mit der Datenbankleistung auf SQL-Abfragen zurückzuführen sind - entweder falsch geschrieben oder aus verschiedenen Gründen ineffizient ausgeführt. Unvollständige Statistiken, eine neue Version des Optimierers, falsche Parameter, Konflikte - es gibt tausend Gründe, warum SQL-Abfragen möglicherweise nicht korrekt ausgeführt werden. Das Oracle SQL Tuning Advisor-Tool bietet Empfehlungen zur Verbesserung der Leistung problematischer SQL-Abfragen mit demselben SQL-Abfrageoptimierungsprogramm (Cost Based Optimizer, CBO), jedoch in einem speziellen Optimierungsmodus, sodass CBO mehr Zeit für umfassende Analysen und Überprüfungen hat. Die Analyse verwendet reale und historische AWR-Daten und identifiziert alternative Ausführungspläne für Abfragen. Wenn bei Verwendung eines parallelen SQL-Profils die Ausführung von SQL-Abfragen zweimal oder öfter beschleunigt wird, SQL Tuning Advisor wird es ebenfalls empfehlen. Außerdem überprüft der SQL-Optimierungsratgeber die verschiedenen Empfehlungen und Sie erhalten in Enterprise Manager einen Bericht darüber, welche SQL-Abfrage analysiert wurde und welche Empfehlungen zur Konfiguration gegeben wurden.

    Die in Oracle Database 12c eingeführte neue Version des SQL Access Advisor-Tools kann die Analysezeit für große SQL-Lasten erheblich verkürzen. Der SQL Access Advisor analysiert nicht einzelne SQL-Anweisungen, sondern die SQL-Last für einen bestimmten Zeitraum. Jetzt arbeitet es viel produktiver und analysiert die Datenbankobjekte zehnmal schneller.

    Sowohl der SQL Access Advisor als auch der SQL Tuning Advisor verfügen über eine grafische Oberfläche in Enterprise Manager.

    Überprüfen Sie das Ergebnis


    Das SQL Performance Analyzer (SPA) -Tool, das Teil von Real Application Testing ist, bietet Tests in Oracle Database 10.2, 11g und 12c. Mit diesem Tool können Sie die Auswirkungen von Datenbanksystemänderungen auf die SQL-Antwortzeit vorhersagen, die SQL-Leistungsergebnisse für jede SQL-Testausführung bestimmen und die Unterschiede analysieren in der Leistung und vergleicht die Leistungsergebnisse bestimmter SQL-Abfragen. Gleichzeitig wirkt sich dies nur minimal auf die Leistung des Arbeitssystems aus, wenn die SQL-Last im SQL-Optimierungssatz (SQL Tuning Set, STS) erfasst wird.

    Mit der neuen SQL Performance Analyzer-Funktion - SPA-Schnellprüfung in Enterprise Manager können Sie schnell nach Änderungen suchen, z. B. nach Optimierungsparametern, die sich auf Abfragepläne auswirken. Wenn Sie beispielsweise tausend Anfragen in einem Satz haben und nur zehn von ihnen ihre Pläne ändern, werden diese zehn Anfragen von SPA Quick Check zuerst identifiziert und vergleichende Tests für sie durchgeführt.

    Separat wäre es wert, über einen proaktiven Ansatz zu sprechen, d.h. Informationen zum Verhindern von Problemen mit dem DBMS - Informationen zum Verwalten von Abfrageplänen. Dies ist jedoch ein separates Thema, das den Rahmen dieses Artikels sprengt.

    Informationsquellen


    Um mehr über die Leistungsoptimierung zu erfahren, sollten Sie zunächst die Dokumentation für Oracle Database lesen. In diesem Dokument finden Sie zunächst einen Überblick über alles, was wir im Rahmen dieses Artikels besprochen haben. Das Handbuch zur Leistungsoptimierung konzentriert sich auf die Leistungsoptimierung auf Datenbankinstanzebene. Die Optimierung von SQL-Abfragen wird ausführlich im SQL-Optimierungshandbuch beschrieben. Ein weiteres Dokument, das Testhandbuch, enthält Informationen zum Real Application Testing-Paket und zu den verschiedenen Verwendungsmöglichkeiten von SQL Performance Analyzer. Wir empfehlen außerdem die Teilnahme an einem fünftägigen Schulungskurs an der Oracle University mit dem Namen Oracle Database 12c: Performance Management and Tuning.

    Jetzt auch beliebt: