SQL Trace, Profiling, …a Tuning

Post on 24-Feb-2016

66 views 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

SQL Trace, Profiling, …a Tuning

Lubomír AndrleLubomir.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?

• 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