Strategisches Tuning - Database Consult GmbH

Werbung
Strategisches Tuning – Teil 1
Werkzeuge, Lastprofile
TOAD User Konferenz 2007
Dr. Günter Unbescheid
Database Consult GmbH
Statement 1
Strategisches Tuning – Teil 1
Unzureichend performante
performante Systeme
Systeme sind
sind
Unzureichend
normal und
und
normal
aus diesem
diesem Grunde
Grunde kein
kein Grund
Grund zur
zur
aus
Beunruhigung.
Beunruhigung.
Auf Überraschungen sind wir
vorbereitet. – Nur die
alltäglichen Dinge brechen
über uns herein wie
Katastrophen.
Stanislaw Jercy Lec
10/2007
Database Consult GmbH
©Database Consult GmbH - Jachenau
Folie 2 von
1
Statement 2
Strategisches Tuning – Teil 1
Tuningist
istdaher
daherein
ein
Tuning
alltägliches
Geschäft,
alltägliches Geschäft,
dasssich
sichnoch
nochdazu
dazutäglich
täglichändert!
ändert!
dass
Wenn der Wind des Wandels weht, bauen
die einen Schutzmauern, die anderen
bauen Windmühlen
Chinesische Weisheit
©Database Consult GmbH - Jachenau
10/2007
Folie 3 von
Statement 3
Strategisches Tuning – Teil 1
Tuning erfordert
erfordert
Tuning
Wissen,
Geduld,
Neugier,
Phantasie,
Wissen, Geduld, Neugier, Phantasie,
Konzentration
auf
das
Wesentliche,
Konzentration auf das Wesentliche,
Werkzeuge
Werkzeuge
Wenig gedeiht,
Zuviel zerstreut.
Volksmund
10/2007
Database Consult GmbH
Phantasie ist wichtiger als
Wissen,denn Wissen ist
begrenzt.
Albert Einstein
©Database Consult GmbH - Jachenau
Folie 4 von
2
Statement 4
Strategisches Tuning – Teil 1
DieKenntnis
Kenntnisder
der Features
Featuresmacht
machtnoch
noch
Die
kein
performantes
System
kein performantes System
Wir leben in einer Zeit vollkommener Mittel
und verworrener Ziele.
Albert Einstein
©Database Consult GmbH - Jachenau
10/2007
Folie 5 von
Resumee
Strategisches Tuning – Teil 1
[Tuning]ist
ist wie
wieRudern
Rudern gegen
gegenStrom.
Strom.
[Tuning]
Sobald
man
aufhört,
treibt
man
zurück.
Sobald man aufhört, treibt man zurück.
Anlehnungan
anBenjamin
BenjaminBritten
Britten
InInAnlehnung
10/2007
Database Consult GmbH
©Database Consult GmbH - Jachenau
Folie 6 von
3
Auf den Punkt...
Strategisches Tuning – Teil 1
Wissen
Strategie
Werkzeuge
Features
Psychologie
©Database Consult GmbH - Jachenau
10/2007
Folie 7 von
Agenda
Strategisches Tuning – Teil 1
• 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
10/2007
Database Consult GmbH
©Database Consult GmbH - Jachenau
Folie 8 von
4
Strategisches Tuning – Teil 1
Teil 1: Werkzeuge, Lastprofile
Analysestrategien
©Database Consult GmbH - Jachenau
10/2007
Folie 9 von
Tuning Features und Tools.....
Redo Log Advisor
Buffer Cache Advisor Extended Statistics
SQL Repair Advisor
Segment Advisor
EM
V$-Tabellen
Adaptive Cursors
Library Cache Advisor
Variable Peeking
PGA Advisor
ADDM
AWR
TOAD
Klares Nutzungskonzept
Statspack
Plan Stability
ADR
unabdingbar!
SQL Plan Management
SPA
SQL Monitoring
Spotlight
Undo Advisor
ASH
init Parameter
SQL Tuning Advisor
Database Consult GmbH
TKPROF
Trace Analyzer
Result Cache
10/2007
Strategisches Tuning – Teil 1
Dynamic Sampling
Hora
SQL*Navigator
SQL Test Builder
OraSRP
DD - Views
SQL Access Advisor
©Database Consult GmbH - Jachenau
Folie 10 von
5
Zielsetzung
Strategisches Tuning – Teil 1
Akzeptanz
Akzeptable Antwortzeiten
SLA-Erfüllung
Skalierbarkeit
Minimierung
des
Ressourcenverbrauchs
+ Angepasstes HW Sizing
Funktionale Vollständigkeit
©Database Consult GmbH - Jachenau
10/2007
Folie 11 von
... nach dem Lehrbuch
– 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 ...)
Strategisches Tuning – Teil 1
• Tuning ist Teil des gesamten Oracle-Management Prozesses
– erhöhter Tuningbedarf bei kritischen Anwendungen
Monitoring
Tuning
Systemdesign
Approval
10/2007
Database Consult GmbH
©Database Consult GmbH - Jachenau
Folie 12 von
6
Aktionspyramide
Lastprofile
reaktiv
Strategisches Tuning – Teil 1
Tuning
Monitoring
Reporting
Optimierte Implementierung
Datenbankdesign
Systemanalyse
proaktiv
„performance
engineering“
©Database Consult GmbH - Jachenau
10/2007
Folie 13 von
Instrumentarium
– Monitoring, Tuning, Ticketing
– Redundanzen können optimierend wirken (nicht bei Ticketing)
• Know-How
– gezielte Aus- und Weiterbildung
– Neugier und Experimentierfreude
Strategisches Tuning – Teil 1
• Bewusste Werkzeugwahl
• 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
10/2007
Database Consult GmbH
©Database Consult GmbH - Jachenau
Folie 14 von
7
Strategie
Strategisches Tuning – Teil 1
• 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
10/2007
Folie 15 von
Strategie
Strategisches Tuning – Teil 1 Methode
Reduktion der Anwortzeiten durch Optimierung
massgeblicher Faktoren
Ermittlung der Faktoren durch Aufzeichnung von
Ressourcenprofilen
Ressourcenprofile listen CPU- und Wartezeiten von
Kontexten
Oracle Wait Events und Zeitmodelle ermöglichen Profile
10/2007
Database Consult GmbH
©Database Consult GmbH - Jachenau
Folie 16 von
8
Fokussierung
©Database Consult GmbH - Jachenau
10/2007
Strategisches Tuning – Teil 1 Methode
• Fokus auf
geschäftsrelevante Dialoge
mit kritischem
Antwortzeitverhalten
• Kenntnis des
technologischen Umfelds
• Kenntnis des konkreten
Dialogablaufs – z.B. über
Aktivitätsdiagramme
• Messung zum richtigen
Zeitpunkt in originalem
System
Folie 17 von
Fokussierung
C D S S S C D D S C
S D D C D D D C C S
Session 3
D C C C D D S S C D
Session 4
C D S S S S C C D D
Zeit
Grafik nach C. Millsap
C = 32,5 %
D = 37,5 %
S = 30,0 %
10/2007
Database Consult GmbH
Strategisches Tuning – Teil 1
Session 1
Session 2
C = 25 %
D = 75 %
S=0%
©Database Consult GmbH - Jachenau
Folie 18 von
9
Strategisches Tuning – Teil 1
Teil 1: Werkzeuge, Lastprofile
Informationsquellen 10g/11g
©Database Consult GmbH - Jachenau
10/2007
Folie 19 von
Übersicht
Strategisches Tuning – Teil 1
• Klare, effizient abrufbare Informationen im
Tuningkontext:
• Applikation
– Systemarchitektur (Diagramm)
– Verantwortlichkeiten/Personen
• Datenbank
– Kennzahlen, Metriken, Services – aktuell und historisch
– Schema-Informationen/Abhängigkeiten (Diagramm)
10/2007
Database Consult GmbH
©Database Consult GmbH - Jachenau
Folie 20 von
10
Beispieldiagramm Systemarchitektur
Strategisches Tuning – Teil 1
10/2007
©Database Consult GmbH - Jachenau
Folie 21 von
Beispieldiagramm Systemarchitektur
Strategisches Tuning – Teil 1
10/2007
Database Consult GmbH
©Database Consult GmbH - Jachenau
Folie 22 von
11
Schemadiagramm
Strategisches Tuning – Teil 1
10/2007
©Database Consult GmbH - Jachenau
Folie 23 von
©Database Consult GmbH - Jachenau
Folie 24 von
Infrastruktur
Strategisches Tuning – Teil 1
10/2007
Database Consult GmbH
12
Monitoring
Strategisches Tuning – Teil 1
10/2007
©Database Consult GmbH - Jachenau
Folie 25 von
©Database Consult GmbH - Jachenau
Folie 26 von
Strategie
Strategisches Tuning – Teil 1
10/2007
Database Consult GmbH
13
Analyse
Strategisches Tuning – Teil 1
©Database Consult GmbH - Jachenau
10/2007
Folie 27 von
Strategisches Tuning – Teil 1
Teil 1: Werkzeuge, Lastprofile
Erstellung von Lastprofilen
10/2007
Database Consult GmbH
©Database Consult GmbH - Jachenau
Folie 28 von
14
Session Lokalisierung
Strategisches Tuning – Teil 1
10/2007
©Database Consult GmbH - Jachenau
Folie 29 von
©Database Consult GmbH - Jachenau
Folie 30 von
Tracefiles
Strategisches Tuning – Teil 1
10/2007
Database Consult GmbH
15
Identifizierung
Strategisches Tuning – Teil 1 Werkzeuge
• 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 SET
tracefile_identifier = 'GU02';
Format: <sid>_ora_<pid>_GU02.trc
10/2007
©Database Consult GmbH - Jachenau
Folie 31 von
Tracefile ermitteln und öffnen
Strategisches Tuning – Teil 1
Rem ggf. an OS oder Ora-Version anpassen
SET SUFFIX TRC
COLUMN filename NEW_VALUE filename
SELECT p1.value||'\'||p2.value||'_ora_'||p.spid
||decode(p3.value,null,'','_'||p3.value) filename
FROM
v$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.paddr
AND s.audsid = USERENV ('SESSIONID');
EDIT &&filename
SET SUFFIX SQL
COLUMN filename CLEAR
10/2007
Database Consult GmbH
©Database Consult GmbH - Jachenau
Folie 32 von
16
Application Info
Strategisches Tuning – Teil 1 Werkzeuge
• 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
BEGIN
DBMS_APPLICATION_INFO.SET_CLIENT_INFO
( CLIENT_INFO => 'Test-Client');
DBMS_SESSION.SET_IDENTIFIER
(CLIENT_ID => 'Test-ID');
END;
©Database Consult GmbH - Jachenau
10/2007
Folie 33 von
Tracing <= 10g
•
•
•
•
10/2007
Database Consult GmbH
Strategisches Tuning – Teil 1
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';
Level 1 – wie sql_trace = true
Level 4 – 1 + Bindevariablen
Level 8 – 1 + wait events
Level 12 – 1 + BV + WE
©Database Consult GmbH - Jachenau
Folie 34 von
17
Tracing <= 10g
10/2007
©Database Consult GmbH - Jachenau
Strategisches Tuning – Teil 1
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);
Folie 35 von
Tracing <= 10g
Strategisches Tuning – Teil 1
# ORADEBUG über SQLPlus
# für Prozess
ORADEBUG SETORAPID 8 –- verifizieren über v$process, oder
ORADEBUG SETMYPID –- fuer eigenen Prozess
ORADEBUG EVENT 10046 TRACE NAME CONTEXT FOREVER, LEVEL 12
# für die eigene Session
ORADEBUG SETMYPID; -- Debug current session.
ORADEBUG SESSION_EVENT 10046 TRACE NAME CONTEXT FOREVER, LEVEL 12
ORADEBUG TRACEFILE_NAME; -- anzeigen current trace file
ORADEBUG SESSION_EVENT event TRACE NAME CONTEXT OFF
# weitere Alternativen
EXECUTE dbms_system.set_ev (9,29,10046,8,'');
EXECUTE dbms_system.set_ev (9,29,10046,0,'');
10/2007
Database Consult GmbH
©Database Consult GmbH - Jachenau
Folie 36 von
18
Tracing <= 10g
Strategisches Tuning – Teil 1
-- Logon-Trigger
CREATE OR REPLACE TRIGGER b4711_logon
AFTER LOGON ON b4711.SCHEMA
BEGIN
dbms_session.set_sql_trace (TRUE);
END;
CREATE OR REPLACE TRIGGER b4711_logoff
BEFORE LOGOFF ON b4711.SCHEMA
BEGIN
dbms_session.set_sql_trace (FALSE);
END;
-- Beliebig aktivieren
ALTER TRIGGER b4711 _logon ENABLE;
ALTER TRIGGER b4711 _logon DISABLE;
©Database Consult GmbH - Jachenau
10/2007
Folie 37 von
Tracing <= 10g
Strategisches Tuning – Teil 1
•
•
•
•
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 GU
EVENT='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 Zeilenumbruch
EVENT="\
10046 trace name context forever, level 12:\
10053 trace name context forever, level 1"
10/2007
Database Consult GmbH
©Database Consult GmbH - Jachenau
Folie 38 von
19
Tracing <= 10g
Strategisches Tuning – Teil 1
• 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) then
dbms_output.put_line('Event
'||to_char(i)||' set at level '
|| to_char(event_level));
end if;
end loop;
end;
10/2007
©Database Consult GmbH - Jachenau
Folie 39 von
Events – Auswahl
Strategisches Tuning – Teil 1
10/2007
Database Consult GmbH
©Database Consult GmbH - Jachenau
Folie 40 von
20
Tracing >= 10g
Strategisches Tuning – Teil 1
•
•
•
•
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
10/2007
Folie 41 von
Tracing
Strategisches Tuning – Teil 1
• 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]
10/2007
Database Consult GmbH
©Database Consult GmbH - Jachenau
Folie 42 von
21
Strategisches Tuning – Teil 1
Bis nachher...
nachher...
Bis
10/2007
Database Consult GmbH
©Database Consult GmbH - Jachenau
Folie 43 von
22
Herunterladen