25
Zpracování SQL Lubomír Andrle lubomir.andrle @ unicorn.eu 5. přednáška 4.11.2013

Zpracování SQL

Embed Size (px)

DESCRIPTION

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 - PowerPoint PPT Presentation

Citation preview

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íku– Kontrola práv na objekty

• Hash textu– Select * from T

versus– SELECT * from T

HARD PARSE

Hard parse

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

Cost-base přístup

• Projití všech relevantních variant ocenění• Zvolení „nejlevnější“ varianty (plánu)

• Vložení této varianty do Library Cache– Přiřazení varianty danému sql (hash sql)– Plán zůstává v cache dokud nevyexpiruje

Execution plan

• Ukázka

Library cache

• Sdílená cache kurzorů• Age out– 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 …

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

Statistiky

• Pro celou tabulku– Počet řádků, průměrná délka řádku, …

• Pro každý sloupec tabulky– Low/High value– 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

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

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

Frekvenční histogramy - příklad

• Ukázka jak by „viděl“ Oracle data bez histogramů

Systémové statistiky

• Údaje o HW a OS• Rychlost čtení bloků• Hospodaření s operační pamětí

a výpočetní kapacitou procesoru• …

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

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

SOFT PARSE

Soft parse

• Oracle provede pouze základní validace• Použije se plán pro daný hash sql– Uložen v Library Cache

• Příkaz se spustí

OR-MAPPING

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

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í bind variables– … where name = ‘Andrle’ where name = :B1– Hodnota B1 se doplní až po parse sql– Stejný hash = soft parse = méně práce pro CBO

Obecné přínosy

• Oddělení dvou „různorodých“vývojářských skupin

• Podpora transparentníchcache

Nevýhody

• Pomalejší – Oproti nativnímu přístup

• Méně pod kontrolou– Lazy load

• Použití alternativy k SQL– HQL, apod.

Q&A