De presentatie wordt gedownload. Even geduld aub

De presentatie wordt gedownload. Even geduld aub

Cursus performance tuning voor ontwikkelaars 26 januari 2006 “De beste manier om een query te verbeteren, is door hem niet uit te voeren.”

Verwante presentaties


Presentatie over: "Cursus performance tuning voor ontwikkelaars 26 januari 2006 “De beste manier om een query te verbeteren, is door hem niet uit te voeren.”"— Transcript van de presentatie:

1 Cursus performance tuning voor ontwikkelaars 26 januari 2006 “De beste manier om een query te verbeteren, is door hem niet uit te voeren.”

2 Onderwerpen Meetmethodes Meetmethodes Cost based optimizer Cost based optimizer Interne verwerking van SQL Interne verwerking van SQL Diversen Diversen Pauze Pauze Marcel Hoefs’ gedeelte Marcel Hoefs’ gedeelte

3 Meetmethodes – explain plan utlxplan.sql / PLAN_TABLE utlxplan.sql / PLAN_TABLE Syntax Syntax dbms_xplan.display dbms_xplan.display Leesvolgorde Leesvolgorde Voorspelling vooraf Voorspelling vooraf cpt_explain.sql cpt_xplan_display.sql cpt_plan_lezen.sql

4 Meetmethodes – SQL Trace Instrumentatie van Oracle zelf Instrumentatie van Oracle zelf Syntax m.b.v. alter session Syntax m.b.v. alter session Syntax m.b.v. dbms_session Syntax m.b.v. dbms_session Syntax m.b.v. dbms_system Syntax m.b.v. dbms_system USER_DUMP_DEST USER_DUMP_DEST TIMED_STATISTICS TIMED_STATISTICS MAX_DUMP_FILE_SIZE MAX_DUMP_FILE_SIZE _TRACE_FILES_PUBLIC _TRACE_FILES_PUBLIC cpt_sql_trace1.sql cpt_sql_trace2.sql cpt_sql_trace3.sql

5 Meetmethodes – tkprof _ora_ _ora_ [ _ ].trc Formattering Formattering Syntax tkprof Syntax tkprof Lezen van een tkprof- uitvoerbestand Lezen van een tkprof- uitvoerbestand Redenen voor onvolledig uitvoerbestand Redenen voor onvolledig uitvoerbestand De waarheid De waarheid charon:mvs_o> tkprof cpt_onvolledig.sql

6 Meetmethodes – Trace events Wat kan je met events ? Wat kan je met events ? 10046 event 10046 event Verklaring verschil tussen cpu en elapsed met level = 8 of 12 Verklaring verschil tussen cpu en elapsed met level = 8 of 12 Syntax m.b.v. alter session Syntax m.b.v. alter session Syntax m.b.v. dbms_system Syntax m.b.v. dbms_system Basis van Veritas’ I3 Indepth for Oracle Basis van Veritas’ I3 Indepth for Oracle 10053 event 10053 event cpt_10046_1.sql cpt_10046_2.sql cpt_1401.sql

7 Cost based optimizer Opvolger van Rule based optimizer Opvolger van Rule based optimizer Cost Cost OPTIMIZER_MODE OPTIMIZER_MODE Statistieken Statistieken analyze versus dbms_stats analyze versus dbms_stats Monitoring Monitoring Histogrammen Histogrammen cpt_statistieken.sql cpt_analyze.sql cpt_dbms_stats.sql cpt_monitoring.sql cpt_histogrammen.sql

8 Interne verwerking van SQL - schematisch Syntax controle Syntax controle Semantische controle Semantische controle Opzoeken in library cache Opzoeken in library cache Optimalisatie Optimalisatie Plangeneratie Plangeneratie Uitvoeren volgens plan Uitvoeren volgens plan Resultaat teruggeven Resultaat teruggeven parse execute fetch soft parse cpt_optim.sql cpt_syntax.sql cpt_seman.sql

9 Interne verwerking – Minder parsen OPEN cursor  parse ? OPEN cursor  parse ? SESSION_CACHED_CURSORS SESSION_CACHED_CURSORS Session cursor cache Session cursor cache PL/SQL cursor cache PL/SQL cursor cache SQL*Plus SQL*Plus cpt_open_parse.sql

10 Interne verwerking van SQL - opgave NrSoort #hard parses #soft parses #execSnelst 1 Rij per rij 2Bulk 3 Dyn. SQL 4 Dyn. SQL met b.v. 5SQL 1010.000 1 0 100 10.000 0 1 9.999 101 3 2 5 4 1

11 Interne verwerking - bindingsvariabelen Plaatsvervangers voor constanten in SQL Plaatsvervangers voor constanten in SQL Hard parse versus soft parse Hard parse versus soft parse Latches / schaalbaarheid Latches / schaalbaarheid CURSOR_SHARING CURSOR_SHARING PL/SQL en Oracle*Forms PL/SQL en Oracle*Forms Peeking Peeking SQL-injectie SQL-injectie cpt_injectie.sql cpt_peeking.sql cpt_latches.sql

12 Diversen - Hints Algemeen: liever niet gebruiken ! Algemeen: liever niet gebruiken ! Uitzonderingen: Uitzonderingen: FIRST_ROWS(n), ALL_ROWS, CHOOSE, (NO)REWRITE, DRIVING_SITE, (NO)PARALLEL, (NO)APPEND, CARDINALITY, DYNAMIC_SAMPLING, CURSOR_SHARING_EXACT

13 Diversen – Outer joins Nadeel van outer join Nadeel van outer join Is de outer join echt nodig ? Is de outer join echt nodig ? Een alternatief Een alternatief cpt_outerjoin1.sql cpt_outerjoin2.sql

14 Diversen – Analytische functies Mogelijkheid om meer in SQL, minder in PL/SQL te doen Mogelijkheid om meer in SQL, minder in PL/SQL te doen Verzamelingen Verzamelingen Kan self join voorkomen Kan self join voorkomen Berekeningen over rijen heen Berekeningen over rijen heen Lopende totalen Lopende totalen cpt_af1.sql cpt_af2.sql

15 Einde deel 1 VRAGEN ?


Download ppt "Cursus performance tuning voor ontwikkelaars 26 januari 2006 “De beste manier om een query te verbeteren, is door hem niet uit te voeren.”"

Verwante presentaties


Ads door Google