Fyzická organizácia Flashcards
Dáta sú uložené na trvácnych (externých) médiách, ktoré možno rozdeliť do dvoch kategórií:
médiá so sekvenčným prístupom, ľubovolným prístupom
Dáta v tabuľkách sú organizované po riadkoch (records), dáta na externých médiách sú organizované v …
blokoch
Opíš fyzickú optimalizáciu dotazov na slide 4
slide 4
Ako sa dnes reprezentujú medzivýsledky v optimalizácii?
Iterátory (pipelining): medzivýsledky sa reprezentujú vhodným previazaním pointerov na záznamy (riadky relácií).
Pri seqScan aká je cena prečítania jedného bloku?
1
Pri seqScan aká je cena prečítania jedného riadku?
0.01
Pri seqScan aká je cena filtrovacej podmienky?
0.0025
Aký je vzorec costu pri seqscan s x filtrami?
B(R)+T(R)*(0.01 + x * 0.0025)
Algoritmus sort (externý merge-sort) Triedenie dlhého súboru, ktorý sa nezmestí celý do operačnej pamäte. Nech je v operačnej pamäti miesto pre M diskových blokov. Ako to vyrátať?
- Prečítaj M blokov, utrieď, zapíš do behu. Vznikne T(R) / M behov po M blokoch.
- Prečítaj M-1 behov po M blokoch, utrieď, zapíš ako jeden beh po (M-1)*M blokoch
Opakuj a zapisuj behy - Spracuj aj výsledné behy
Koľko cca trvá jedna operácia?
0.1 sekundy cca
Ako robiť nested-loop join R a S?
Predpokladajme, že R má menej blokov než S.
Prečítaj M-2 blokov menšej relácie R. 1 blok rezervuj
pre vstup S a 1 blok pre výstup. Postupne prečítaj všetky
bloky S, a pre každý blok aplikuj join záznamov R v RAM
na záznamy v práve načítanom bloku S.
Opakuj
Aký je počet operácií (cost) nested loop join bez zapisovania?
cost = B(R) + (B(R) / (M-2)) * B(S)
Aké sú podmienky merge-join?
- utriedené záznamy
2. join len na základe rovnosti
Aký je cost merge-join? (bez zápisov)
cost = B(R) + B(S)
Čo vieme spraviť aby sme efektívne vyberali? namiesto seq-scan?
Pridáme indexy, index scan je oveľa efektívnejší