sql trace, profiling, …a tuning
DESCRIPTION
SQL Trace, Profiling, …a Tuning. Lubom ír Andrle Lubomir.andrle @unicorn.eu. OWI. Za vším hledej waity Komplexní instrumentace Oracle kernelu Velmi jemná granularita Event vs. Wait class V $SESSION. Co je to výkon?. - PowerPoint PPT PresentationTRANSCRIPT
SQL Trace, Profiling, …a Tuning
Lubomír [email protected]
OWI
• Za vším hledej waity• Komplexní instrumentace Oracle kernelu
• Velmi jemná granularita• Event vs. Wait class• V$SESSION
Co je to výkon?
• Otázka: Databáze běží na 100% CPU. Je to známka dobrého nebo špatného výkonu?
• Záleží…• „Výkon“– Throughput– Response time
Co databázi vytěžuje
• V podstatě… :– Sessiony (bez nich nikdo nic neudělá)– Aplikace, kterým ty sessiony patří– Spouštění kurzorů (samotné SQL)• Vytěžují CPU
– anebo by chtěly• Nevytěžují CPU
– jsou IDLE nebo jsou něčím blokovány
Metriky databáze
• Ratios– Buffer cache hit ratio
• Počet transakcí za minutu• Využití CPU• …..• Neříkají nám nic o tom, jestli uživatel čeká
nebo ne
Co má smysl měřit?
• ČAS– pro konkrétní úlohu– (konkrétního uživatele)– tak jemně, jak je potřeba
Response time
• Odezva pro uživatele– čas, za který je úloha splněna
• Součet časů všech podúloh– Parse– Načtení dat z tabulek– Přenos na aplikační vrstvu– …
Jak měřit response time?
• Instrumentace kódu• Na úrovni Oracle – využít OWI
SQL Trace
• Vždy v rámci jedné session• Generuje tracefile• Event 10046Alter session set events '10046 trace name context forever, level 12‘
• DBMS_SYSTEM• DBMS_MONITOR– Preferovaná metoda od 10g
SQL Trace II
• DBMS_MONITOR– Session_trace_enable– Database_trace_enable…
SQL Trace III
• PARSE, EXEC, FETCHc = CPU timee = Elapsed timer = rows returnedp = physical readscr = consistent reads
SQL Trace IV
• WAITnam = název eventuela = elapsed time (mikrosekundy)
• BINDSdty = datový typval = value
• XCTEND– Commit / rollback
SQL Trace V
• Třívrstvá architektura• Connection pooling• DBMS_SESSION.set_identifier• Client_id_trace_enable
Profiling
• TKPROF– parsuje tracefile a provede agregace
• tkprof <tracefile> <outputfile> <sort>
Profiling II
• Alternativy k TKPROF:– OraSRP– TVDXTAT– MOS tooly
Profiling III
• Třívrstvá architektura:– Jeden „request“ je často rozprostřen mezi několik
sessions– Sessiony jsou podepsané pomocí request ID
• Utilita TRCSESS– Spojuje tracefily na základě parametrů– Například client_identifier nebo action
Profiling IV
• Nepoužívejte trace na celou databázi• Profilujte relevantní části• Pozor na místo na disku
Historické metriky
• ASH (Active session history)– V$ACTIVE_SESSION_HISTORY
• AWR (Automatic workload repository)– DBA_HIST_%
• Vyžaduje Enterprise Edition + tuning packy
AWR
• Vytváří snapshoty– Agregovaná data z ASH pro dané období– Data jsou pak zveřejněna pomocí DBA_HIST
pohledů– Je nad nimi možné dělat vlastní výpočty a
přehledy
• DBMS_WORKLOAD_REPOSITORY
AWR II
• AWR Report• Agregované informace z AWR v textu nebo
HTML
• $ORACLE_HOME/rdbms/admin/awrrpt.sql
AWR III
• ADDM– Automatic database diagnostic monitor– Vyhodnocuje data z AWR a vydává doporučení
• ADDM Report• $ORACLE_HOME/rdbms/admin/addmrpt.sql
Shrnutí
• Response time• Tracing• Profiling
• Automaticky sbírané výkonnostní metriky databáze– ASH, AWR, ADDM– reporty
Q & A