A
gyakorlati
foglalkozás és az
előadások
anyagára épül. 2.EA: -- az előző előadásnak az a része, ami a mai gyakorlatra kell:
Oracle példány, folyamatok,
memóriaterületek Oracle.ppt
(KA) (1-38.o.) OracleEnterprise Manager
lehetőségei (KA AB2EA oldalán) Instancia.ppt, instancia.pdf,
instancia_inditas.pdf (NT)
OracleConcepts11g.pdf
(KA széljegyzetével) (uez)
(...) 3.EA: DBA feladatok. Fizikai fájlszervezés, indexelés alapjai
Az Oracle adatbázissal kapcsolatos DBA feladatok Less01-hu.ppt (KA)
Az Oracle
telepítése
Less02-hu.ppt (KA)
A fizikai
fájlszervezés (kupac, hasítóindex)fizika.ppt (KA) (1-20 oldal)
-- előadáshoz kapcsolódó
további olvasmány:
Molina-Ullman-Widom: Adatbázisrendszerek
megvalósítása, Panem, 2001.
4.4.fej. Tördelőtáblázatok
(hasítóindex szervezés,
lineáris,
kiterjeszthető)
5.01. Adjuk meg, hogy mikor indult el a jelenleg futó
instancia.
5.02. Az instancia elindulása óta hány
felhasználói bejelentkezés
történt a
rendszerbe?
Hány
tranzakciót hagytak jóvá (commit) es
hányat vontak vissza (rollback) ?
(V$SYSSTAT)
5.03. Mely háttérfolyamatok futnak jelenleg az
alábbiak közül?
(ARC0, DBW0,
PMON, SMON, FMON, LMON)
5.04. Mekkora a log puffer mérete?
Mekkora a shared
pool mérete?
5.05. Maximum hány nyitott kurzort tarthatnak fenn az egyes
sessionok?
Mekkora lehet
maximálisan az SGA terület mérete a
jelenleg futó instanciánál?
Hány
konkurrens tranzakció futását engedi
meg egyidejüleg az adatbáziskezelő?
(V$PARAMETER)
5.06. Kik vannak jelen pillanatban bejelentkezve az
adatbázis-kezelőbe?
Melyik
felhasznaló van legrégebben bejelentkezve
és hány másodperce?
Kik azok, akik
SQL Developer programmal jelentkeztek be?
5.07. Mi a tomx gépen levő adatbázis neve es
mikor lett
létrehozva?
5.08. Melyik adatfájlra vonatkozóan
történt a legtöbb
blokk-olvasási
müvelet
(PHYBLKRD oszlop) az instancia elindulása óta?
5.09. Melyek az adatbázishoz tartozó log
fájlok?
Melyik az amelybe
jelenleg is ír a rendszer?
Melyek az
adatbazishoz tartozo control fájlok?
5.10. A jelenleg telepített adatbázisban
hasznalható-e a
Particionálási opció,
a Bitmap index
opció illetve a Real Application Clusters opció?
ROWID
adattípus formátuma és
jelentése (lásd
még DBMS_ROWID
package)
18 karakteren írodik ki, a következő
formában: OOOOOOFFFBBBBBBRRR
OOOOOO - az objektum azonosítója
FFF - fájl
azonosítója
(táblatéren belüli relativ
sorszám)
BBBBBB - blokk azonosító (a
fájlon belüli sorszám)
RRR - sor
azonosító (a blokkon
belüli sorszám)
A ROWID megjelenítéskor 64-es alapú
kódolásban jelenik meg.
Az egyes számoknak (0-63) a következő karakterek
felelnek meg:
A-Z -> (0-25), a-z -> (26-51), 0-9 -> (52-61), '+'
-> (62), '/' -> (63)
Pl. 'AAAAAB' -> 000001
6.01. A NIKOVITS
felhasználó CIKK
táblája hány blokkot foglal le az
adatbázisban?
(Vagyis azt
nézzük meg, hogy hány olyan blokk van,
ami ehhez a táblához van
rendelve
és így azok
már más táblákhoz nem
adhatók
hozzá?) (DBA_SEGMENTS)
Hasonlítsuk össze ezt azzal, hogy mennyi a foglalt
hely összesen? (DBA_EXTENTS)
6.02. A NIKOVITS
felhasználó CIKK
táblájának adatai hány
blokkban helyezkednek el?
(Vagyis a
tábla sorai ténylegesen hány blokkban
vannak tárolva?)
!!! -> Ez
a kérdés
nem ugyanaz mint az előző, most a ROWID-et használjuk!
6.03. Az egyes blokkokban hány sor van?
6.04. Hozunk létre egy olyan táblát
(lásd tárolási
paraméterek.txt) az EXAMPLE táblatéren,
amelynek
szerkezete azonos a
nikovits.cikk tábláéval és pontosan
128 KB helyet foglal
az
adatbázisban. Foglaljunk le
manuálisan egy újabb
128 KB-os extenst a
táblához.
HF05. Vigyünk
fel sorokat addig, amig az első
blokk tele nem lesz, és 1 további
sora
lesz
még a
táblának a második blokkban.
(A felvitelt plsql
programmal
végezzük és ne kézzel, mert
úgy kicsit
sokáig tartana.)
6.05. Próbáljuk ki az előzőt ismét, de
most a PCTFREE értéket
állítsuk 40-re.
Mindkét esetben
ellenőrizzük is, hogy a sorok tényleg
két blokkban
vannak,
és a
másodikban csak egyetlen sor van.
6.06. Állapítsuk meg, hogy a SH.SALES
táblának a következő adatokkal
azonosított sora
(time_id='1998.01.10', prod_id=13, cust_id=2380) melyik
adatfájlban van,
azon
belül melyik blokkban, és a blokkon belül
hányadik a sor?
6.07. Az előző feladatban megadott sor melyik
partícióban van?
Mennyi az
objektum azonosítója, és ez milyen
objektum?
HF06. Írjunk meg egy PL/SQL
függvényt,
amely a ROWID 64-es
kódolásnak
megfelelő
számot adja vissza. A
függvény paramétere egy
karakterlánc,
eredménye pedig a
kódolt numerikus
érték legyen. (Elég ha a
függvény
maximum
6 hosszú, helyesen kódolt
karakterláncokra működik,
hosszabb
karakterláncra vagy rosszul
kódolt
paraméterre adjon
vissza -1-et.)
Ennek a fv-nek a
segítségével adjuk
meg egy táblabeli sor pontos fizikai
elhelyezkedését.
(Melyik
fájl, melyik blokk, melyik
sora)
Például az
emp tábla azon sorára, ahol a dolgozó neve
'KING'.
Megjegyzés: A gyakorlatok egyik
célkitűzése az is, hogy az Oracle Database
Online
Documentation könyvtárban otthonosan
mozogjunk, lásd
például
PL/SQL
Packages
and Types Reference "DBMS_ROWID"
fejezetét.
Gyakorlásként
írjuk
meg a fenti PL/SQL függvényt. A
megírt
függvényünk
működését
könnyen ellenőrizhetjük az DBMS_ROWID
csomagban
szereplő függvényekkel, az
alábbi utasítással, írjuk
be a függvényünket
minden substr(...)-hoz egészítsük ki a
sajátfvnév(substr(...))-el.