1 / 15

Cursus performance tuning voor ontwikkelaars

Cursus performance tuning voor ontwikkelaars. 26 januari 2006. “De beste manier om een query te verbeteren, is door hem niet uit te voeren.”. Onderwerpen. Meetmethodes Cost based optimizer Interne verwerking van SQL Diversen Pauze Marcel Hoefs’ gedeelte. Meetmethodes – explain plan.

sage-booth
Download Presentation

Cursus performance tuning voor ontwikkelaars

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

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

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

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

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

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

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

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

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

  10. Interne verwerking van SQL - opgave 1 0 10.000 3 0 100 2 1 0 5 10.000 10.000 1 9.999 10.000 4 1 0 1 1

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

  12. Diversen - Hints • Algemeen: liever niet gebruiken ! • 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 • Is de outer join echt nodig ? • Een alternatief cpt_outerjoin1.sql cpt_outerjoin2.sql

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

  15. Einde deel 1 VRAGEN ?

More Related