sql trace, profiling, …a tuning

23
SQL Trace, Profiling, …a Tuning Lubomír Andrle Lubomir.andrle @unicorn.eu

Upload: tariq

Post on 24-Feb-2016

67 views

Category:

Documents


1 download

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 Presentation

TRANSCRIPT

Page 1: SQL Trace, Profiling, …a Tuning

SQL Trace, Profiling, …a Tuning

Lubomír [email protected]

Page 2: SQL Trace, Profiling, …a Tuning

OWI

• Za vším hledej waity• Komplexní instrumentace Oracle kernelu

• Velmi jemná granularita• Event vs. Wait class• V$SESSION

Page 3: SQL Trace, Profiling, …a Tuning

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

Page 4: SQL Trace, Profiling, …a Tuning

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

Page 5: SQL Trace, Profiling, …a Tuning

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

Page 6: SQL Trace, Profiling, …a Tuning

Co má smysl měřit?

• ČAS– pro konkrétní úlohu– (konkrétního uživatele)– tak jemně, jak je potřeba

Page 7: SQL Trace, Profiling, …a Tuning

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– …

Page 8: SQL Trace, Profiling, …a Tuning

Jak měřit response time?

• Instrumentace kódu• Na úrovni Oracle – využít OWI

Page 9: SQL Trace, Profiling, …a Tuning

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

Page 10: SQL Trace, Profiling, …a Tuning

SQL Trace II

• DBMS_MONITOR– Session_trace_enable– Database_trace_enable…

Page 11: SQL Trace, Profiling, …a Tuning

SQL Trace III

• PARSE, EXEC, FETCHc = CPU timee = Elapsed timer = rows returnedp = physical readscr = consistent reads

Page 12: SQL Trace, Profiling, …a Tuning

SQL Trace IV

• WAITnam = název eventuela = elapsed time (mikrosekundy)

• BINDSdty = datový typval = value

• XCTEND– Commit / rollback

Page 13: SQL Trace, Profiling, …a Tuning

SQL Trace V

• Třívrstvá architektura• Connection pooling• DBMS_SESSION.set_identifier• Client_id_trace_enable

Page 14: SQL Trace, Profiling, …a Tuning

Profiling

• TKPROF– parsuje tracefile a provede agregace

• tkprof <tracefile> <outputfile> <sort>

Page 15: SQL Trace, Profiling, …a Tuning

Profiling II

• Alternativy k TKPROF:– OraSRP– TVDXTAT– MOS tooly

Page 16: SQL Trace, Profiling, …a Tuning

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

Page 17: SQL Trace, Profiling, …a Tuning

Profiling IV

• Nepoužívejte trace na celou databázi• Profilujte relevantní části• Pozor na místo na disku

Page 18: SQL Trace, Profiling, …a Tuning

Historické metriky

• ASH (Active session history)– V$ACTIVE_SESSION_HISTORY

• AWR (Automatic workload repository)– DBA_HIST_%

• Vyžaduje Enterprise Edition + tuning packy

Page 19: SQL Trace, Profiling, …a Tuning

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

Page 20: SQL Trace, Profiling, …a Tuning

AWR II

• AWR Report• Agregované informace z AWR v textu nebo

HTML

• $ORACLE_HOME/rdbms/admin/awrrpt.sql

Page 21: SQL Trace, Profiling, …a Tuning

AWR III

• ADDM– Automatic database diagnostic monitor– Vyhodnocuje data z AWR a vydává doporučení

• ADDM Report• $ORACLE_HOME/rdbms/admin/addmrpt.sql

Page 22: SQL Trace, Profiling, …a Tuning

Shrnutí

• Response time• Tracing• Profiling

• Automaticky sbírané výkonnostní metriky databáze– ASH, AWR, ADDM– reporty

Page 23: SQL Trace, Profiling, …a Tuning

Q & A