Architektúra (Oracle Library – Concepts)
Logikai felépítés Data block: fix méret (pár byte) – freelist (PCTFREE, PCTUSED params). Extent: folytonosan elhelyezkedő data blockok, területfoglalás extentek formájában – új extent foglalása bitmap alapján. Segment: azonos célra foglalt, egy tablespacen belüli extentek. ideiglenes szegmensek nagyobb memóriaigényű műveletknél (def. SYSTEM => érdemes külön temporary tablespaceket létrehozni).
Tablespaces + Fizikai felépítés Tablespaces: legn. logikai tárolási egység: SYSTEM: data dictonary+eljárások (d.m.) SYSAUX: kieg. – egyéb metaadatok TEMP (opc.): feldolgozás esetén ideigle- nes tárolásra - +user tablespaces locally mngd: bitmap (AUTO/MANUAL) dictionary mngd: data dictionary Datafile: tablespace adatait tárolja fizikailag. Egy tablespacehez és adatbázishoz tartozhat csak. Control files: indításhoz + működéshez. Célszerű több példányt külön lemezeken tárolni és karbantartani egyidejűleg.
Séma objektumok 1. Séma: egy felhasználóhoz tartozó logikai adatstruktúrák összessége. Táblák: alap tárolási egység tárolása: külön szegmenst foglalunk a létrehozásakor létrehozásnál megadott oszlopsorrend fontos (kiv. LONG) tömörítés: szimbólumtábla + hivatkozás Nézetek: virtuális táblák – megjelentés, adatrejtés tárolás: data dictionaryben a lekérdezést Materializált nézetek: adatok összegzése, számítása, replikálása főként adattárházak esetén hasznos optimalizaló automatikusan felismeri, ha egy lekérdezést ki lehet elégíteni vele => behelyettesít ~ hasonlít indexekre.
Séma objektumok 2. Szinonimák: alternatív név sokféle objektumtípusra (public/private) biztonság + kényelem, definíció tárolása a data dictionaryben alkalmazások esetén hasznos => hivatkozott objektum változása esetén csak a szinonimát kell árírni, az alkalmazást nem. Indexek: információkeresés gyorsítása – I/O műveletek csökkentése UNIQUE/NONUNIQUE – célszerű explicit megadni összetett indexek: fontos a megadott oszlopok sorrendje tárolás: indexszegmens – ownertől különböző tablespaceben is, sőt különböző diszken is akár => párhuzamosítható kulcstömörítés: prefix+suffix rész, pl. több attribútumra vonatkozó unique indexeknél => -disk –I/O +minimális CPU Oracle B-fát használ => logn keresési idő Bitmap indexek: adattárházak esetén; ekviv. vizsgálatoknál
Séma objektumok 3. function-based indexes: függvény értékét tárolják. Pl: CREATE INDEX idx ON table_1 (a + b * (c - 1), a, b); SELECT a FROM table_1 WHERE a + b * (c - 1) < 100; CREATE INDEX uppercase_idx ON employees (UPPER(first_name)); SELECT * FROM employees WHERE UPPER(first_name) = 'RICHARD'; Index-Organized tables: hagyományos (heap) helyett primary key szerint rendezzett B-fában tároljuk az adatokat. sok oszlop esetén levelek méretnövekedése => overflow alkalmazás: OLTP, Internet (kereső motorok, portálok), e- kereskedelem, adattárházak, stb. Application Domain Indexek: indexelés kiterjesztése komplex adattípusokra – doksik, spatial adatok, képek, videók, stb.
Data Dictionary Központi, csak olvasható referencia táblák és nézetek. séma objektumok definíciója; séma objektumok számára allokált és felhasznált területek; oszlopok alapértelmezett értékei; integritás kényszerekről információk; az adatbázis felhasználóinak nevei; az egyes felhasználókhoz tartozó jogok és szerepek; naplózási információk; egyéb általános adatbázis információk Base tables: adatbázisról infok; csak az adatbázis olvashatja és írhatja; titkosítva tárolódnak User-Accessible Views: felhasználók számára megjelenített információk Minden base table és user-accessible view a SYS sémájában
Memória felépítése 1.
Memória felépítése 2. Szoftverkód területek: éppen futó vagy futtatható kódok System Global Area (SGA): szerver- és háttérfolyamatok között megosztott információk – adatok+vezérléssel kapcsolatos infok Buffer Cache: beolvasott adatblokkok – write list+LRU list Shared Pool: három részre osztható: Library Cache: futtatott SQL utasítások elemzési fája + végrehajtási terve – memóriatakarékos, lekérdezésgyorsítás – LRU algoritmus Dictionary Cache: data dictionary cachelése Result Cache: lekérdezések eredményének cachelése Program Global Area (PGA): minden egyes szerverfolyamathoz létrejön egy PGA – hozzá tartozó adat+vezérléssel kapcsolatos információk Session memória: session specifikus információk Private SQL Area: változók értékei, lekérdezések végrehajtásának állapotinformációi
Processzek Szerverfolyamatok: Felhasználói processzek kezelése: Elemzi és futtatja az SQL utasításokat Beolvas az SGA–ba Visszaadja az eredményeket helyes formátumban Háttérfolyamatok: Teljesítmény maximalizálása, felhasználók kezelése, stb. Információk: V$BGPROCESS nézetből nyerhetőek ki. ARCn, CKPT, DBWn, Job Queue Process, LGWR, PMON, QMNn, RECO, SMON, s számos egyéb folyamat, melyek nagy része a 11g újdonságai közé tartozik…