Strategisches Tuning – Teil 1 Werkzeuge, Lastprofile · 2008-12-16 · Database Consult GmbH 1...
Transcript of Strategisches Tuning – Teil 1 Werkzeuge, Lastprofile · 2008-12-16 · Database Consult GmbH 1...
Database Consult GmbH 1
Strategisches Tuning – Teil 1Werkzeuge, Lastprofile
TOAD User Konferenz 2007Dr. Günter Unbescheid
Database Consult GmbH
©Database Consult GmbH - Jachenau
Strategisches Tuning –Teil 1
10/2007 Folie 2 von
Auf Überraschungen sind wir vorbereitet. – Nur die alltäglichen Dinge brechen über uns herein wie Katastrophen.
Stanislaw Jercy Lec
Statement 1
Unzureichend performante Systeme sind normal und
aus diesem Grunde kein Grund zur Beunruhigung.
Unzureichend performante Systeme sind normal und
aus diesem Grunde kein Grund zur Beunruhigung.
Database Consult GmbH 2
©Database Consult GmbH - Jachenau
Strategisches Tuning –Teil 1
10/2007 Folie 3 von
Wenn der Wind des Wandels weht, bauen die einen Schutzmauern, die anderen bauen Windmühlen
Chinesische Weisheit
Statement 2
Tuning ist daher ein alltägliches Geschäft,
dass sich noch dazu täglich ändert!
Tuning ist daher ein alltägliches Geschäft,
dass sich noch dazu täglich ändert!
©Database Consult GmbH - Jachenau
Strategisches Tuning –Teil 1
10/2007 Folie 4 von
Wenig gedeiht,Zuviel zerstreut.
Volksmund
Phantasie ist wichtiger als Wissen,denn Wissen ist begrenzt.
Albert Einstein
Statement 3
Tuning erfordert Wissen, Geduld, Neugier, Phantasie,Konzentration auf das Wesentliche,
Werkzeuge
Tuning erfordert Wissen, Geduld, Neugier, Phantasie,Konzentration auf das Wesentliche,
Werkzeuge
Database Consult GmbH 3
©Database Consult GmbH - Jachenau
Strategisches Tuning –Teil 1
10/2007 Folie 5 von
Wir leben in einer Zeit vollkommener Mittel und verworrener Ziele.
Albert Einstein
Statement 4
Die Kenntnis der Features macht noch kein performantes System
Die Kenntnis der Features macht noch kein performantes System
©Database Consult GmbH - Jachenau
Strategisches Tuning –Teil 1
10/2007 Folie 6 von
Resumee
[Tuning] ist wie Rudern gegen Strom. Sobald man aufhört, treibt man zurück.
In Anlehnung an Benjamin Britten
[Tuning] ist wie Rudern gegen Strom. Sobald man aufhört, treibt man zurück.
In Anlehnung an Benjamin Britten
Database Consult GmbH 4
©Database Consult GmbH - Jachenau
Strategisches Tuning –Teil 1
10/2007 Folie 7 von
Auf den Punkt...
Wissen
Werkzeuge
PsychologieFeatures
Strategie
©Database Consult GmbH - Jachenau
Strategisches Tuning –Teil 1
10/2007 Folie 8 von
Agenda
• Teil 1 – Werkzeuge, Erstellung von Profilen– Analysestrategien– Informationsquellen der Versionen 10g und 11g– Erstellung von Lastprofilen
• Teil 2 – Analyse von Lastprofilen– Wait Events– CPU-Zeiten– SQL Zugriffspläne
Database Consult GmbH 5
©Database Consult GmbH - Jachenau
Strategisches Tuning –Teil 1
10/2007 Folie 9 von
Teil 1: Werkzeuge, LastprofileAnalysestrategien
©Database Consult GmbH - Jachenau
Strategisches Tuning –Teil 1
10/2007 Folie 10 von
Tuning Features und Tools.....
V$-Tabellen
AWR
ADDM
ASH
ADR
Trace Analyzer
OraSRP
Statspack
EM
TOAD
SQL*Navigator
Hora
SQL Tuning Advisor
SQL Test Builder
Segment Advisor
PGA Advisor
Undo Advisor
Buffer Cache Advisor
Library Cache Advisor
Redo Log Advisor
DD - Viewsinit Parameter
TKPROF
Plan Stability
Dynamic SamplingAdaptive Cursors
Variable Peeking
SQL Plan Management
Result Cache
SPA
SQL Monitoring
SQL Access Advisor
SQL Repair Advisor
Extended Statistics
Spotlight
Klares Nutzungskonzeptunabdingbar!
Database Consult GmbH 6
©Database Consult GmbH - Jachenau
Strategisches Tuning –Teil 1
10/2007 Folie 11 von
Zielsetzung
Minimierungdes Ressourcenverbrauchs+ Angepasstes HW Sizing
Skalierbarkeit
Akzeptable AntwortzeitenSLA-Erfüllung
Akzeptanz
Funktionale Vollständigkeit
©Database Consult GmbH - Jachenau
Strategisches Tuning –Teil 1
10/2007 Folie 12 von
... nach dem Lehrbuch
• Tuning ist Teil des gesamten Oracle-Management Prozesses– Systemdesign und Implementierung während der Entwicklung– Kontrolle der Ziele während des „Approval“– Monitoring und Tuning während Nutzung
• Die Wirksamkeit steigt mit der „Design-Nähe“• In der Praxis kommen Systemdesign und Approval oft zu kurz
(externe Zukäufe, Termindruck ...)– erhöhter Tuningbedarf bei kritischen Anwendungen
Systemdesign
Approval
MonitoringTuning
Database Consult GmbH 7
©Database Consult GmbH - Jachenau
Strategisches Tuning –Teil 1
10/2007 Folie 13 von
Aktionspyramide
Tuning
Lastprofile
MonitoringReporting
Optimierte Implementierung
Datenbankdesign
Systemanalyse
reaktiv
proaktiv
„performance engineering“
©Database Consult GmbH - Jachenau
Strategisches Tuning –Teil 1
10/2007 Folie 14 von
Instrumentarium• Bewusste Werkzeugwahl
– Monitoring, Tuning, Ticketing– Redundanzen können optimierend wirken (nicht bei Ticketing)
• Know-How– gezielte Aus- und Weiterbildung– Neugier und Experimentierfreude
• IST-Bewusstsein– Applikation (Architektur, Abhängigkeiten)– Datenbank (Baselines, Abhängigkeiten)
• Teamfähigkeit– DB, Netzwerk, Applikation, OS, Storage– angepasste Organisationsstrukturen, Public Relations– angepasste Arbeitsabläufe mit problemorientierter
Standardisierung, Eigenverantwortlichkeit
Database Consult GmbH 8
©Database Consult GmbH - Jachenau
Strategisches Tuning –Teil 1
10/2007 Folie 15 von
Strategie
• Reaktion bei Abweichung von Zielvorgaben/Erwartungen– Skalierbarkeit– Antwortzeitverhalten
• Kenntnis des Applikations-Umfeldes (Architektur)• Exakte Fokussierung auf das Problem
– Monitoring - Lastprofile
• Konzentration auf signifikante Engpässe– CPU-Zeiten, Wartezeiten
• Optimierung dieser Engpässe• Kontrolle der Zielvorgaben• Bei Bedarf: nächste Runde
©Database Consult GmbH - Jachenau
Strategisches Tuning –Teil 1
10/2007 Folie 16 von
Strategie
Reduktion der Anwortzeiten durch Optimierungmassgeblicher Faktoren
Ermittlung der Faktoren durch Aufzeichnung von Ressourcenprofilen
Ressourcenprofile listen CPU- und Wartezeiten von Kontexten
Oracle Wait Events und Zeitmodelle ermöglichen Profile
Methode
Database Consult GmbH 9
©Database Consult GmbH - Jachenau
Strategisches Tuning –Teil 1
10/2007 Folie 17 von
Fokussierung
• Fokus auf geschäftsrelevante Dialogemit kritischem Antwortzeitverhalten
• Kenntnis des technologischen Umfelds
• Kenntnis des konkreten Dialogablaufs – z.B. über Aktivitätsdiagramme
• Messung zum richtigen Zeitpunkt in originalem System
Methode
©Database Consult GmbH - Jachenau
Strategisches Tuning –Teil 1
10/2007 Folie 18 von
Fokussierung
C D S S S S C C D DSession 4D C C C D D S S C DSession 3
Zeit
SSession 2 D D C D D D C C SC D S S S C D D S CSession 1
Grafik nach C. Millsap
C = 32,5 %D = 37,5 %S = 30,0 %
C = 25 %D = 75 %S = 0 %
Database Consult GmbH 10
©Database Consult GmbH - Jachenau
Strategisches Tuning –Teil 1
10/2007 Folie 19 von
Teil 1: Werkzeuge, LastprofileInformationsquellen 10g/11g
©Database Consult GmbH - Jachenau
Strategisches Tuning –Teil 1
10/2007 Folie 20 von
Übersicht
• Klare, effizient abrufbare Informationen im Tuningkontext:
• Applikation– Systemarchitektur (Diagramm)– Verantwortlichkeiten/Personen
• Datenbank– Kennzahlen, Metriken, Services – aktuell und historisch– Schema-Informationen/Abhängigkeiten (Diagramm)
Database Consult GmbH 11
©Database Consult GmbH - Jachenau
Strategisches Tuning –Teil 1
10/2007 Folie 21 von
Beispieldiagramm Systemarchitektur
©Database Consult GmbH - Jachenau
Strategisches Tuning –Teil 1
10/2007 Folie 22 von
Beispieldiagramm Systemarchitektur
Database Consult GmbH 12
©Database Consult GmbH - Jachenau
Strategisches Tuning –Teil 1
10/2007 Folie 23 von
Schemadiagramm
©Database Consult GmbH - Jachenau
Strategisches Tuning –Teil 1
10/2007 Folie 24 von
Infrastruktur
Database Consult GmbH 13
©Database Consult GmbH - Jachenau
Strategisches Tuning –Teil 1
10/2007 Folie 25 von
Monitoring
©Database Consult GmbH - Jachenau
Strategisches Tuning –Teil 1
10/2007 Folie 26 von
Strategie
Database Consult GmbH 14
©Database Consult GmbH - Jachenau
Strategisches Tuning –Teil 1
10/2007 Folie 27 von
Analyse
©Database Consult GmbH - Jachenau
Strategisches Tuning –Teil 1
10/2007 Folie 28 von
Teil 1: Werkzeuge, LastprofileErstellung von Lastprofilen
Database Consult GmbH 15
©Database Consult GmbH - Jachenau
Strategisches Tuning –Teil 1
10/2007 Folie 29 von
Session Lokalisierung
©Database Consult GmbH - Jachenau
Strategisches Tuning –Teil 1
10/2007 Folie 30 von
Tracefiles
Database Consult GmbH 16
©Database Consult GmbH - Jachenau
Strategisches Tuning –Teil 1
10/2007 Folie 31 von
Identifizierung
• Generiert individuelles Infix für Trace-Dateien• Dynamisch für die Session• Immer dann, wenn Session mehrere Prozesse benutzt:
– Parallel Query– Shared Server
ALTER SESSION SETtracefile_identifier = 'GU02';
Format: <sid>_ora_<pid>_GU02.trc
Werkzeuge
©Database Consult GmbH - Jachenau
Strategisches Tuning –Teil 1
10/2007 Folie 32 von
Tracefile ermitteln und öffnenRem ggf. an OS oder Ora-Version anpassenSET SUFFIX TRCCOLUMN filename NEW_VALUE filename
SELECT p1.value||'\'||p2.value||'_ora_'||p.spid ||decode(p3.value,null,'','_'||p3.value) filename
FROMv$process p,v$session s,v$parameter p1,v$parameter p2,v$parameter p3
WHERE p1.name = 'user_dump_dest'AND p2.name = 'db_name'AND p3.name = 'tracefile_identifier'AND p.addr = s.paddrAND s.audsid = USERENV ('SESSIONID');
EDIT &&filenameSET SUFFIX SQLCOLUMN filename CLEAR
Database Consult GmbH 17
©Database Consult GmbH - Jachenau
Strategisches Tuning –Teil 1
10/2007 Folie 33 von
Application Info
• client_info, module, action über DBMS_APPLICATION_INFO• client_id über DBMS_SESSION – „auditierbar“• Filtern teilweise möglich über
– v$session, – v$sqlarea, v$sql– dbms_monitor
BEGINDBMS_APPLICATION_INFO.SET_CLIENT_INFO
( CLIENT_INFO => 'Test-Client');DBMS_SESSION.SET_IDENTIFIER
(CLIENT_ID => 'Test-ID');END;
Werkzeuge
©Database Consult GmbH - Jachenau
Strategisches Tuning –Teil 1
10/2007 Folie 34 von
Tracing <= 10g
• Level 1 – wie sql_trace = true• Level 4 – 1 + Bindevariablen• Level 8 – 1 + wait events• Level 12 – 1 + BV + WE
alter session set timed_statistics = true;alter session set max_dump_file_size = unlimited; alter session set events
'10046 trace name context forever, level 12'alter session set events
'10046 trace name context off';
Database Consult GmbH 18
©Database Consult GmbH - Jachenau
Strategisches Tuning –Teil 1
10/2007 Folie 35 von
Tracing <= 10g
dbms_system.set_bool_param_in_session(72, 166, 'timed_statistics', true);
dbms_system.set_int_param_in_session(72, 166, 'max_dump_file_size', 2147483647);
dbms_system.set_ev(72, 166, 10046, 8, '');/* Tracing ausschalten */dbms_system.set_ev(72, 166, 10046, 0, '');-- ################DBMS_SUPPORT.START_TRACE_IN_SESSION
(SID => 12, SERIAL => 77, WAITS => TRUE, BINDS => TRUE);
©Database Consult GmbH - Jachenau
Strategisches Tuning –Teil 1
10/2007 Folie 36 von
Tracing <= 10g
# ORADEBUG über SQLPlus# für ProzessORADEBUG SETORAPID 8 –- verifizieren über v$process, oderORADEBUG SETMYPID –- fuer eigenen ProzessORADEBUG EVENT 10046 TRACE NAME CONTEXT FOREVER, LEVEL 12
# für die eigene SessionORADEBUG SETMYPID; -- Debug current session.ORADEBUG SESSION_EVENT 10046 TRACE NAME CONTEXT FOREVER, LEVEL 12ORADEBUG TRACEFILE_NAME; -- anzeigen current trace fileORADEBUG SESSION_EVENT event TRACE NAME CONTEXT OFF# weitere AlternativenEXECUTE dbms_system.set_ev (9,29,10046,8,'');EXECUTE dbms_system.set_ev (9,29,10046,0,'');
Database Consult GmbH 19
©Database Consult GmbH - Jachenau
Strategisches Tuning –Teil 1
10/2007 Folie 37 von
Tracing <= 10g
-- Logon-TriggerCREATE OR REPLACE TRIGGER b4711_logonAFTER LOGON ON b4711.SCHEMA BEGIN
dbms_session.set_sql_trace (TRUE);END;
CREATE OR REPLACE TRIGGER b4711_logoff BEFORE LOGOFF ON b4711.SCHEMABEGIN
dbms_session.set_sql_trace (FALSE);END;
-- Beliebig aktivierenALTER TRIGGER b4711 _logon ENABLE;ALTER TRIGGER b4711 _logon DISABLE;
©Database Consult GmbH - Jachenau
Strategisches Tuning –Teil 1
10/2007 Folie 38 von
Tracing <= 10g
• Dauerhaftes Setzen der Events• Mehrfache Events immer in Folge oder über ":"!• Nicht für immediate dumps geeignet• Alert-Datei zeigt aktive Events
# SQL-Trace aktiviert am 12.08.2003 GUEVENT='10046 trace name context forever, level 12'# Interna des CBO-Optimizers aktiviert am 1.9.03 EVENT='10053 trace name context forever, level 1'
# alternativ mit :, \ für ZeilenumbruchEVENT="\10046 trace name context forever, level 12:\10053 trace name context forever, level 1"
Database Consult GmbH 20
©Database Consult GmbH - Jachenau
Strategisches Tuning –Teil 1
10/2007 Folie 39 von
Tracing <= 10g
• Lesen eingestellter Events und Level• Zeigt Werte nur für die eigene Session
declare event_level number;begin for i in 10000..10999 loop sys.dbms_system.read_ev(i,event_level);if (event_level > 0) thendbms_output.put_line('Event
'||to_char(i)||' set at level '|| to_char(event_level));
end if;end loop;
end;
©Database Consult GmbH - Jachenau
Strategisches Tuning –Teil 1
10/2007 Folie 40 von
Events – Auswahl
Database Consult GmbH 21
©Database Consult GmbH - Jachenau
Strategisches Tuning –Teil 1
10/2007 Folie 41 von
Tracing >= 10g
• Hierarchische Filter für Servicename, Modul und Action• Separater Filter für Client Identifier• Regeln wirken kumulativ• Ausgabe der definierten regeln über View
DBA_ENABLED_TRACES
dbms_monitor.serv_mod_act_trace_enable('APP1', 'PACK_X', 'Proc_Y');
dbms_monitor.serv_mod_act_trace_disable('APP1', 'PACK_X', 'Proc_Y');
dbms_monitor.client_id_trace_enable('GU');
dbms_monitor.client_id_trace_disable('GU');
©Database Consult GmbH - Jachenau
Strategisches Tuning –Teil 1
10/2007 Folie 42 von
Tracing
• Zusammenführen von Trace-Dateien für– Client-Identifier– Module, Actions– Sessions
trcsess [output=output_file_name][session=session_id][clientid=client_id][service=service_name][action=action_name][module=module_name][trace_files]