Ausgewählte Advisors und Monitoring-Werkzeuge in der

Werbung
Ausgewählte Advisors und MonitoringWerkzeuge in der Datenbank
Ulrike Schwinn
[email protected]
Oracle Deutschland B.V. & Co KG
Oracle Business Unit Database Technologies & Cloud
Blog: http://blogs.oracle.com/dbacommunity_deutsch
DOAG Oracle Monitoring Day
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Fragen ...
• Welche Objekte bzw. welche Blöcke sind im Data Buffer Cache?
• Welche Ressourcen verwendet meine Abfrage?
• Welche Abfragen sind langlaufende Abfragen?
• Welche Sessions/User verursachen die Engpässe?
• Wie kann man PL/SQL monitoren?
• Sind meine Indizes ausreichend oder habe ich zu viele Indizes?
• Lohnt sich die In-Memory Option für mich?
• Komprimierte Indizes oder Tabellen: Wieviel Platz spare ich?
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Monitoring Werkzeuge, Advisors ... in der Datenbank
• Einfaches Framework in der Datenbank bestehend aus
– V$- und Data Dictionary Views
– Initialisierungsparameter
– PL/SQL Packages
– Enterprise Manager Cloud Control, Database Express, SQL Developer, sqlcl
• Eigenschaften
– Stehen in der Regel nach der Installation sofort zur Verfügung
– Teilweise gekoppelt an Initialisierungsparameter
• Lizenzierung berücksichtigen
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Advisors im Überblick
Advisor Name
Beschreibung
ADDM
diagnostiziert Datenbank Performance Probleme und gibt Empfehlungen
SQL Access
gibt Informationen und Empfehlungen über die Zugriffsstrukturen
SQL Tuning
führt Optimizer-Analyse-Läufe durch und gibt Empfehlungen
SPA (SQL Performance Analyzer)
Testing Werkzeug für SQL Workloads
Compression
berechnet die Komprimierungsrate pro Segment
Memory
analysiert die unterschiedlichen Cache Größen in einer WHAT-IF Analyse
Segment
analysiert Tablespaces, Tabellen, Partitionen usw. auf ihren Platzverbrauch
UNDO
hilft eine angemessene Größe des UNDO Tablespaces festzulegen
MTTR
beeinflusst das Checkpoint Verhalten
Data Recovery
analysiert persistente "Failure" (z.B. Daten-Korruptionen)
SQL Repair
analysiert SQL mit kritischen Fehlern, versucht einen SQL Plan zu finden
In-Memory Advisor
In-Memory Nutzen für eine Workload ...
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Bevor man startet ...
• Parameter STATISTICS_LEVEL TYPICAL oder ALL , nicht BASIC
– Defaultwert ist TYPICAL
– Aktiviert das Sammeln von Advisor Statistiken
SQL> show parameter statistics_level
NAME
TYPE
VALUE
------------------------------------ ----------- ---------------------------statistics_level
string
TYPICAL
• Zusätzlich für Diagnostics und Tuning Pack
SQL> show parameter control_man
NAME
TYPE
VALUE
------------------------------------ ----------- -----------------------------control_management_pack_access
string
DIAGNOSTIC+TUNING
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Beispiel 1 – SQL Access Advisor – nicht neu aber ...
• Gute Strukturen sind ein wichtiger Faktor für Performance!
• Funktionsweise: Strukturanalyse von SQL Workloads
• Gibt Empfehlungen für
– Indizes
– Materialized Views/Materialized View Logs
– Partitionierung
• Empfiehlt Aktionen und erzeugt SQL Skript
– Erstellen (CREATE), Löschen (DROP), Beibehalten (RETAIN)
• Verfügbarkeit im Linemode oder Enterprise Manager
• Tuning Pack
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
SQL Access Advisor – API
DECLARE
workload_name varchar2(100) :='STS_DOAG';
task_name varchar2(100);
task_id number;
begin
dbms_advisor.create_task('SQL Access Advisor', task_id, task_name);
dbms_advisor.set_task_parameter(task_name,'ANALYSIS_SCOPE','INDEX');
dbms_advisor.set_task_parameter(task_name,'WORKLOAD_SCOPE','FULL');
dbms_advisor.set_task_parameter(task_name,'MODE','LIMITED');
dbms_advisor.set_task_parameter(task_name,'TIME_LIMIT','5');
dbms_advisor.set_task_parameter(task_name,'VALID_TABLE_LIST','DWH_DATA.%');
dbms_advisor.add_sts_ref(task_name, 'SYS', workload_name);
dbms_advisor.execute_task(task_name);
dbms_advisor.create_file(DBMS_ADVISOR.GET_TASK_SCRIPT(task_name),'HOME','adv.sql');
end;
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
SQL Access Advisor – Im Cloud Control
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
SQL Access Advisor – Ergebnis
Rem
Rem
Rem
Rem
Rem
SQL Access Advisor: Version 12.1.0.2.0 – Production
Username:
Task:
Execution date:
SYS
TASK_74091
/* RETAIN INDEX "DWH_DATA"."FACT_701_CC_IDX" */
/* RETAIN INDEX "DWH_DATA"."FACT_701_PER_IDX" */
/* RETAIN INDEX "DWH_DATA"."LU_ITEM_701_FV01_IDX" */
CREATE INDEX "DWH_DATA"."LU_ELEMENTGROU_IDX$$_1216B0000“
ON "DWH_DATA"."LU_ELEMENTGROUP_REL“
("ELEMENTGROUP_ID","VALUE_ID")
COMPUTE STATISTICS;
...
DROP INDEX "DWH_DATA"."LU_ITEM_701_ITM_IDX";
DROP INDEX "DWH_DATA"."LU_ITEM_701_PG_IDX";
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
SQL Access Advisor - Fazit
• Überprüfung der Strukturen ohne eigene Applikationskenntnisse
• Kein Setup erforderlich
• Einfache Durchführung über graphische Oberfläche
• Benötigt Ressourcen
• Benötigt Workload/STS
• Überprüfung ist in jedem Fall sinnvoll
– Indizes niemals einfach löschen oder einfach anlegen=> Skript editieren
– Unterstützende Features: Invisible Indizes, Mehrfachindizierung in 12c
• Tuning Pack erforderlich
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Beispiel 2 – Oracle Database In-Memory - Steckbrief
•
Reines In-Memory Format
•
Nutzung unterschiedlicher Komprimierungsarten (2x - 20x)
• Einschaltbar auf Objektebene
• Voraussetzungen:
– Datenbank Release 12.1.0.2
– Gebunden an In-Memory Option
• Der Column Store ist geeignet für einheitliche Zugriffe (alle Zeilen einer
Tabelle) => typisch für analytische Abfragen
• Der Column Store ist mit zusätzlichen neuen Optimizerzugriffen und
Komprimierungsalgorithmen ausgestattet
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Beispiel 2 – In-Memory Advisor
• Analysiert Workload und gibt Ratschläge zur Verwendung von Oracle
Database In-Memory Option
• Nutzt AWR und ASH Daten
• Installation und Download notwendig
• Nutzung
– Über Package oder vorgefertigte Skripte bzw. EM ab Version 13.1
– Für 12c und auch für 11.2.0.3 Datenbanken
•
Voraussetzung: XMLDB
• Lizenzierung: Tuning Pack erforderlich
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
In-Memory Advisor Verwendung
• Aktuellen Download (neu im Juni!) von MOS (Doc ID 1965343.1) nutzen
– Zip Datei und Paper
• Kurze Installation über SQL Skript
– Erzeugt IMADVISOR Schema, neue Packages und Views
• Einfache Verwendung mit Skript
–
–
–
–
Während Live Workload oder nach Batch Lauf
Notwendig: Zeitspanne (ab wann und wie lange)
Optional: Memory Size für In-Memory
Ergebnis ist HTML Report und SQL Skript
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
In-Memory Advisor – in Aktion
SQL>
@imadvisor_recommendations.sql
The following is a list of your existing tasks:
TASK_NAME
DATE_CREATED
------------------------------ ----------------------------task1
2016-JUN-16 15:01:44
Default task_name (new task): im_advisor_task_20160616172326
Enter value for task_name: task4
...
Analyzing and reporting on a live workload on this database (DBID=1381635790)...
Enter value for inmemory_size: 2Gb
The In-Memory Advisor will optimize for this In-Memory size: 2GB
Enter begin time for report:
Enter value for begin_time: -3:00
Enter duration in minutes starting from begin time
Enter value for duration: 180
Using 2016-JUN-16 14:23:42.000000000 as report begin time
Using 2016-JUN-16 17:23:59.000000000 as report end time
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
In-Memory Advisor – Ergebnisse
• HTML Datei (imadvisor_<taskname>.html)
• SQL Skript
Rem Copyright (c) 2014, 2016, Oracle and/or its affiliates.
All rights reserved.
ALTER TABLE "DWH_DATA"."FACT_PD_OUT_ITM_701" INMEMORY MEMCOMPRESS FOR QUERY LOW;
ALTER TABLE "DWH_DATA"."LU_ELEMENTGROUP_REL" INMEMORY MEMCOMPRESS FOR QUERY LOW;
ALTER TABLE "DWH_DATA"."LU_ITEM_701" INMEMORY MEMCOMPRESS FOR QUERY LOW;
ALTER TABLE "DWH_DATA"."LU_ELEMENTRANGE_REL" INMEMORY NO MEMCOMPRESS;
...
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Ergebnis Ausschnitt
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
In-Memory Advisor - Weiteres
• Weitere Verwendung
– AWR s und STS können von anderer Datenbank importiert werden
– Müssen dem Advisor bekannt gegeben werden (spezielle Vorgehensweise siehe
Paper)
• Wichtig:
– Muss ausreichende und relevanten Daten erhalten
• Informationen
– Oracle Database In-Memory Advisor Usage Examples
– Using SAP NetWeaver with Oracle Database In- Memory - im SAP Umfeld eigenes
Vorgehen
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Fazit und Ausblick
• Ausprobieren lohnt sich!
• Immer zusätzlich Realitäts Check durchführen
• Nicht vergessen: Advisor und Monitoring Werkzeuge haben fokussierten
und definierten Einsatzbereich
• In 12.2 wird es neue bzw. erweiterte Advisors geben
• Informationen auch auf unserem deutschsprachigen Community Blog Seite
https://blogs.oracle.com/dbacommunity_deutsch/
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Herunterladen