Kihagyás

Tuning

Optimalizáció menete

  • SQL Lekérdezés
  • Szintaktikus és szemantikus ellenőrzés
  • Optimalizáció
    • RBO - Szabályalapú
    • CBO - Költségalapú
      • Itt érkezhet a szótárból statisztika
  • Lekérdezési terv
    • Sorforrás generátor
  • SQL végrehajtás
  • Eredmény megjelenítés

RBO vs CBO

RBO

  • Rögzített heurisztikus szabályok szerint
    • Indexen keresztül gyorsabb átnézni
    • Teljesen megegyező index jobb, mint a részben egyező
    • ...

CBO

  • Adatstatisztikák szerint
  • Két mód
    • Legjobb átfutás - minden sort minél hamarabb
      • Először számol, aztán tér vissza
    • Legjobb válaszidő - első sort minél hamarabb
      • Ha lehet, már számításkor adjon vissza adatokat

Beállítás

  • Példány szinten - optimizer_mode paramáter
    • Szabály
    • Választás
      • Statisztikánál CBO, egyébként RBO
  • Munkamenet szinten
    • ALTER SESSION SET optimizer_mode=<mode>;
  • Utasítás szinten
    • SQL szövegben tippek adhatók

DML vs Query

Általános alak:

  • Megnyitás \(\to\) Elemzés \(\to\) Végrehajtás (\(\to\)Kiolvasás\(^n\))

Adattárolás

Táblák

  • 🍊le minden adatot adatfájlokban tárol
    • Helyet és méretet a DBA határozza meg
    • Logikailag táblaterekbe csoportosítva
    • Minden fájlt egy relatív fno fájlszám azonosítja
  • At adatfájl adatblokkokból áll
    • Méretét a db_block_size határozza meg
    • Minden blokkot a fájlbeli eltolás azonosítja
  • Az adatblokkok rekordokat (sorokat) tartalmaznak
    • Minden sort a blokkban elfoglalt helye azonosít

ROWID:<Blokk>.<Sor>.<Fájl>

Indexek

  • Az adatfájlokban szintén blokkokban tárolódik
    • Szabadalmazott formátum
  • Kiegyensúlyozott fák
    • Indexelt oszlop(ok) rendezett tárolása
      • NULL nincs indexelve
    • A szerkezet logaritmikus keresést tesz lehetővé
  • B-fa tartalma
    • Csomópont blokkok
      • Más csomópont vagy levél mutatóit tartalmazza
    • Levélblokkok
      • Tényleges adat
      • Tartalmazza a ROWID-t is

Tábla és Index I/O

  • LRU lista vezérli, hogy mi fér be a gyorsítótárba