230 likes | 365 Views
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?.
E N D
SQL Trace, Profiling, …a Tuning Lubomír Andrle Lubomir.andrle@unicorn.eu
OWI • Za vším hledej waity • Komplexní instrumentace Oraclekernelu • Velmi jemná granularita • Event vs. Waitclass • 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 • Buffercache 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 10046 Alter 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, FETCH c = CPU time e = Elapsedtime r = rowsreturned p = physicalreads cr = consistentreads
SQL Trace IV • WAIT nam = název eventu ela = elapsedtime (mikrosekundy) • BINDS dty = datový typ val = value • XCTEND • Commit / rollback
SQL Trace V • Třívrstvá architektura • Connection pooling • DBMS_SESSION.set_identifier • Client_id_trace_enable
Profiling • TKPROF • parsujetracefile 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 • Pozorna místo na disku
Historické metriky • ASH (Activesessionhistory) • V$ACTIVE_SESSION_HISTORY • AWR (Automatic workload repository) • DBA_HIST_% • Vyžaduje EnterpriseEdition+ 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 • Automaticdatabasediagnostic 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