E (elméleti
témakör)
> E6. Lekérdezések
végrehajtása és I/O költségek (Tk.
6.3-6.6. fejezete)
--- Megj.: Az I.ZH-ban a lekérdezések
végrehajtásának csak az alapvető
--- algoritmusai lesznek (lásd Tk.6.1-6.6
fejezetek)
és I/O költségek lesznek,
--- az indexen alapuló algoritmusokat (Tk.6.7.),
egyéb költségeket (Tk.7.fej.)
--- az I.ZH után fogjuk venni. (Előadások
1-7.tételek anyaga lesz az I.ZH-n)
További feladatok az
adatszótárnézetek
lekérdezésére DBA_PART_TABLES,
DBA_PART_INDEXES,
DBA_TAB_PARTITIONS,
DBA_IND_PARTITIONS,
DBA_TAB_SUBPARTITIONS,
DBA_IND_SUBPARTITIONS,
DBA_PART_KEY_COLUMNS
8.01. 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.
8.02. 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)
8.03. Adjuk meg, hogy az SH.COSTS
tábla
mely oszlop(ok) szerint
van particionálva.
8.04. Adjuk meg, hogy a NIKOVITS.ELADASOK3
illetve az
SH.COSTS
táblák
második
partíciójában milyen
értékek szerepelhetnek.
8.05. 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,
illetve ha alpartíciói is
vannak
(pl.
NIKOVITS.ELADASOK4), akkor csak
az
alpartíciók vannak tárolva.
Nézzük meg az
objektumok és a szegmensek
között is.
8.06. 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)
További feladatok az
adatszótárnézetek
lekérdezésére DBA_CLUSTERS,
DBA_CLU_COLUMNS, DBA_TABLES,
DBA_CLUSTER_HASH_EXPRESSIONS
9.01. Adjunk meg egy olyan clustert az
adatbázisban (ha van ilyen), amelyen
még nincs egy tábla
sem.
9.02. Adjunk meg egy olyant, amelyiken
legalább 6 darab tábla van.
9.03. Adjunk meg egy olyan clustert, amelynek a
cluster kulcsa 3 oszlopból áll.
(Vigyázat!!! Több
tábla is lehet rajta)
9.04. Hány olyan hash cluster van az
adatbázisban,
amely nem az oracle
alapértelmezés
szerinti hash függvényén alapul?
9.05. 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) E6.
Lekérdezések
végrehajtása és I/O költségek
Segédanyagok: Nikovits
Tibor összefoglalója: VegrKolts.pdf
- Kiss
Attila Adatbázisok-2 előadása,
lásd
5.előadás optimization-hu.ppt
- (illetve a korábbi
félévek
cAMÜ EA-ból:
LekVegreh1.pdf,
LekVegreh2.pdf
) Tankönyv:
Molina-Ullman-Widom: Adatbázisrendszerek
megvalósítása, 2001.
-
2.3. A másodlagos tárolók
hatékony használata, a
számítás I/O modellje
- 6.3. Adatbázis-műveletek egymenetes algoritmusai
- 6.4. Beágyazott ciklusú
összekapcsolások
- 6.5. Rendezésen alapuló kétmenetes
algoritmusok
- 6.6 Tördelésen alapuló
kétmenetes algoritmusok Feladatok: Adjuk
meg, hogy az egyes algoritmusok hogyan működnek
és
adjuk meg a műveletek
költségbecslését (I/O blokkok
számát).
Tk.2.3.fejezete: Adatok
rendezése másodlagos
tárolókon
- Tegyük fel, hogy a
dolgozó
tábla 140 sorból áll és
10 sora fér el 1 blokkban,
és a
memóriánk 4 blokknyi. Rendezzük
a tábla
sorait fizetés
szerint a
kétfázisú többutas
összefésülő rendezéssel
(sort-merge algoritmussal).
Adjuk meg az
első menet után a
rendezett részlistákat (elég
a dnev,
fizetes).
Hány menetes algoritmusra
lesz
szükségünk? optimization-pp17-22.pdf
Tk.6.fejezet:
Lekérdezések végrehajtása,
műveletek I/O költsége
- Tegyük fel, hogy a dolgozó
tábla 140 sorból áll és
10 sora fér el 1 blokkban,
és a
memóriánk
most 6
blokknyi és van még egy
vásárlás
tábla, amelynek
a
szerkezete a következő: VASARLAS(dkod, cikk, mennyiseg, ar).
Ennek a
táblának is 10 sora fér el 1
blokkban, és a tábla kb.1200 sorból
áll.
Mennyi a műveletigénye
- egy
beágyazott ciklusú
algoritmusnak nested_loop_algoritmus.pdf
- egy rendezés
alapú algoritmusnak sort_merge_algoritmus.pdf
- egy hash
alapú algoritmusnak hash_join_algoritmus.pdf
amely egyenlőséges
összekapcsolást (equijoin) végez a
két
táblán, arra a
lekérdezésre
válaszol, hogy az
egyes
dolgozók összesen mennyit
költöttek?
Feltehetjük, hogy az
összegeket gyűjtő
számlálók még
beférnek a memóriába
a blokkok
mellett. Írjuk
le röviden, hogy az egyes algoritmusok hogyan fognak
működni. Adjuk meg a
kosarakat a
hasítás alapú
algoritmus első menete után.
Köv.héten:
I.ZH,
erről: I.ZH
infó
(Tárkezelés, fizikai
fájlszervezés,
indexstruktúrák)