1 / 25

Zpracování SQL

Zpracování SQL. Lubom ír Andrle lubomir.andrle @ unicorn.eu 5. přednáška 4 .1 1 .201 3. Obsah. Zpracování příkazů SQL Úvod do CBO O-R mapping. Zpracování příkazů. Co se děje při volání SQL. Syntax check Jde o sql ? Semantic analysis Kontrola oproti datov é mu slovn í k u

Download Presentation

Zpracování SQL

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. Zpracování SQL Lubomír Andrle lubomir.andrle@unicorn.eu 5. přednáška 4.11.2013

  2. Obsah • Zpracování příkazů SQL • Úvod do CBO • O-R mapping

  3. Zpracování příkazů

  4. Co se děje při volání SQL • Syntax check • Jde o sql? • Semanticanalysis • Kontrolaoprotidatovému slovníku • Kontrola práv na objekty • Hash textu • Select* from Tversus • SELECT * from T

  5. Hardparse

  6. Hardparse • Sql předáno CBO • Zajištění optimálního provedení příkazu • Musí najít nejefektivnější způsob provedení

  7. Cost-base přístup • Projití všech relevantních variant ocenění • Zvolení „nejlevnější“ varianty (plánu) • Vložení této varianty do LibraryCache • Přiřazení varianty danému sql (hashsql) • Plán zůstává v cache dokud nevyexpiruje

  8. Execution plan • Ukázka

  9. Librarycache • Sdílená cache kurzorů • Ageout • LRU (Least Recently Used) algoritmus • Invalidation – změna vlastnosti objektu • Sbírá informace • Počet spuštění • Počet čtení z disku • A spousty dalších …

  10. Podklady pro cost-base • Nutnost podkladových dat • Bez nich se neumí CBO rozhodnout • Čím přesnější podkladová data, tím přesnější určení optimálního plánu • Příklad • Podkladová data říkají, že je v tabulce 100 řádku • Skutečně jich je 1 000 000 • Nepoužití indexu = špatný plán • Podkladová data = Statistiky

  11. Statistiky • Pro celou tabulku • Počet řádků, průměrná délka řádku, … • Pro každý sloupec tabulky • Low/Highvalue • Hustota (Density) • Počet null hodnot • Pro index • Např. počet leaf bloků • Systémové statistiky • Hodnota vždy normalizována na číslo bez ohledu na datový typ

  12. Frekvenční histogramy • Jeden z typů statistik • Určují rozložení dat ve sloupci tabulky • Počet výskytů pro konkrétní hodnotu • Mohou být velice prospěšné při stanovení ceny • Mají větší váhu při rozhodování CBO

  13. Frekvenční histogramy - příklad • Data o zaplacení pojistného po měsících • ... WHERE PAID_MONTH BETWEEN 200910 AND 201001 • Ukázka histogramu

  14. Frekvenční histogramy - příklad • Ukázka jak by „viděl“ Oracle data bez histogramů

  15. Systémové statistiky • Údaje o HW a OS • Rychlost čtení bloků • Hospodaření s operační pamětí a výpočetní kapacitou procesoru • …

  16. Sběr statistik • Sběr základních statistik a histogramů • pro datové objekty • Velká režie sběru • Defaultně sbírány systémovým jobem

  17. Sběr statistik II • Základní předpoklad • Mít statistiky aktuální • Nezatěžovat systém přílišným sběrem • Aktualizace statistik v předem definovaném období • Období klidového provozu • Aktualizovat pouze statistiky, které od posledního sběru zastaraly

  18. Soft parse

  19. Soft parse • Oracle provede pouze základní validace • Použije se plán pro daný hashsql • Uložen v LibraryCache • Příkaz se spustí

  20. OR-mapping

  21. Cíl O-R mappingu • Konverze dat mezi aplikační a databázovou vrstvou • Odstínění od relačních modelů • Čistě objektový pohled na data

  22. Přínosy pro Oracle • Zajištění stejných dotazů • Načtení stejné entity stále stejným sql – stejný hash příkazu • Použití bindvariables • … wherename= ‘Andrle’  where name = :B1 • Hodnota B1 se doplní až po parsesql • Stejný hash = soft parse = méně práce pro CBO

  23. Obecné přínosy • Oddělení dvou „různorodých“vývojářských skupin • Podpora transparentníchcache

  24. Nevýhody • Pomalejší • Oproti nativnímu přístup • Méně pod kontrolou • Lazyload • Použití alternativy k SQL • HQL, apod.

  25. Q&A

More Related