>> 9.témakör:
Partícionált táblák
létrehozása és kezelése
>> 10.témakör: Klaszterek
létrehozása és kezelése
>> + Az előadás anyagához
kapcsolódó papíros feladatok A
gyakorlati
foglalkozás és az
előadások
anyagára épül. 5.EA: Fizikai fájlszervezés,
indexelés alapjai. Algebrai optimalizálás.
Többszintű index, beszúrás B+
fába, törlés B+
fából
fizika.ppt
(KA) 46-66.o.
Bittérkép index 9ituning.ppt (KA) Bitmap index 83-84.o.
Optimalizálás,
relációs algebrai kifejezések fa
struktúrája és
az
átalakítási szabályok algebrai_opt.ppt
(KA) 100-114.o.
-- Figyelem! A fenti bemutatón csak a
relációs algebrai műveletekre
vonatkozó szabályok szerepelnek, a
kiterjeszett relációs algebrai
műveletekre vonatkozó szabályok az
előadáson a táblára lettek felírva!
-- előadáshoz kapcsolódó
további
olvasmány:
Molina-Ullman-Widom: Adatbázisrendszerek
megvalósítása, Panem, 2001.
4.1.-4.3. fej.Indexek, másodlagos indexek, B+ fák
5.4.fej. Bittérképindexek
7.2.fej. Algebrai szabályok
lekérdezéstervek
javítására
Az előadás
anyagához kapcsolódó
példák és
feladatok: - Molina-Ullman-Widom:
Adatbázisrendszerek
megvalósítása "zöld könyv"
4.1.- 4.4.fejezetek:
Indexstruktúrák, B-fák,
tördelőtáblázatok,
a papíros feladatsort lásd egy
külön oldalon itt: lásd gy04Tk
>> Tk.4.1.
Indexek szekvenciális fájlokon
>> Tk.4.2.
Másodlagos indexek
>> Tk.4.3.
B+ fák
5.4.fejezet:
Bittérképindexek, szakaszhosszkódolt
bitvektorok,
a papíros feladatsort lásd egy
külön oldalon itt: lásd gy05Tk
>> Tk.5.4.
Bittérképindexek 9.témakör:
Partícionált
táblák
létrehozása és kezelése
Táblák
partícionálása. Range, hash
és lista alapú
partícionálás.
Összetett partícionálás,
alpartíciók. Információk
felderítése a
katalógusban.
Lásd Particionalas.txtCREATE
TABLE...
PARTITION
BY RANGE/HASH/LIST stb...
példákat próbáljuk ki!
Oracle
dokumentációkból >>
Concepts >> Part III. Features >>
>> 18. Partitioned Tables,
Partitioning Methods, Partitioned Indexes
További feladatok az
adatszótárnézetek
lekérdezésére
Katalógus táblák
leírása és szerkezete,
lásd KatalTablak DBA_PART_TABLES,
DBA_PART_INDEXES,
DBA_TAB_PARTITIONS,
DBA_IND_PARTITIONS,
DBA_TAB_SUBPARTITIONS,
DBA_IND_SUBPARTITIONS,
DBA_PART_KEY_COLUMNS
- Adjuk meg az SH
felhasználó
tulajdonában levő
partícionált táblák
nevét
és a
particionálás
típusát.
- Soroljuk fel az SH.COSTS
tábla
partícióit valamint, hogy hány blokkot
foglalnak az egyes
partíciók.
(Vigyázat!
Különböző értéket
kaphatunk a
különböző
adatszótárakban.
Ennek
magyarázatát lásd
később az ANALYZE
parancsnál)
- Adjuk meg, hogy az SH.COSTS
tábla
mely oszlop(ok) szerint
van particionálva.
- Adjuk meg, hogy a NIKOVITS.ELADASOK3
illetve az
SH.COSTS
táblák
második
partíciójában milyen
értékek szerepelhetnek.
- Adjuk meg egy partícionált
tábla
logikai és fizikai részeit!
(pl.
NIKOVITS.ELADASOK).
Maga a tábla most is logikai
objektum, a
partíciói vannak fizikailag tárolva.
Nézzük meg az
objektumok és a szegmensek
között is.
- Illetve ha alpartíciói is
vannak (pl.
NIKOVITS.ELADASOK4),
akkor csak az
alpartíciók vannak tárolva.
Nézzük meg ezt is
az objektumok
és a szegmensek között is.
- Melyik a legnagyobb méretű
partícionált tábla az
adatbázisban a partíciók
összméretét tekintve? (az
alpartícióval rendelkező
táblákat is
vegyük figyelembe)
10.Témakör:
Klaszterek
létrehozása és
kezelése
A
klaszterek használata. Több tábla
fizikailag egy
helyen tárolva.
Mi a közös a táblákban?
-> klaszter kulcs. Több oszlopos
klaszterkulcs,
több tábla a klaszteren. Index klaszter
és hash klaszter.
Lásd Klaszterek.txtCREATE
CLUSTER példáit
próbáljuk ki!
Oracle
dokumentációkból >>
Concepts >> Part II. Architecture
>> 5. Schema Objects
>> Overview of Clusters / Hash Clusters
További feladatok az
adatszótárnézetek
lekérdezésére Katalógus
táblák
leírása és szerkezete,
lásd KatalTablak DBA_CLUSTERS,
DBA_CLU_COLUMNS, DBA_TABLES,
DBA_CLUSTER_HASH_EXPRESSIONS
- Hozzunk létre egy DOLGOZO(dazon,
nev,
beosztas, fonoke, fizetes, oazon)
és egy OSZTALY(oazon,
nev,
telephely) nevű táblát.
A két táblának
az osztály
azonosítója (oazon) lesz a
közös oszlopa. A
két táblát
egy CLUSTEREN
hozzuk létre. (Előbb
persze létre kell hozni a clustert
is.)
- Adjunk meg egy olyan clustert az
adatbázisban (ha van ilyen), amelyen
még
nincs egy tábla
sem.
- Adjunk meg egy olyant, amelyiken
legalább 6 darab tábla van.
- Adjunk meg egy olyan clustert, amelynek a
cluster kulcsa 3 oszlopból áll.
(Vigyázat!!! Több
tábla is lehet rajta)
- Hány olyan hash cluster van az
adatbázisban,
amely nem az oracle
alapértelmezés
szerinti hash függvényén alapul?
- Hozzunk létre egy hash clustert
és
rajta két táblát, majd
szúrjunk be a
táblákba sorokat
úgy, hogy a
két táblának 2-2 sora ugyanabba a
blokkba
kerüljön.
Ellenőrizzük is egy lekérdezéssel, hogy
a 4 sor valóban
ugyanabban a blokkban van-e. (A ROWID
lekérdezésével)
(A sorok
elhelyezését befolyásolni tudjuk a
HASH
IS
megadásával.)
Köv.héten: I.ZH,
erről: I.ZH infó
(Tárkezelés, fizikai
fájlszervezés, indexstruktúrák)