Fizikai tervek
Célok, paraméterek, költséget meghatározására (+indexek)
Optimalizáció folyamata
Indexelés
Cél a gyors lekérdezés/módosítás a lehető legkissebb tárterületen
Nincs általánosan legjobb optimalizáció
Valamit valamiért
- Az indexek gyorsítják az adatelérést, de az indexeket is tárolni kell valahol
- Tömörítéssel meg sok sikert időben elérni az adatot...
Adatbázis formálya
Statikus
Ritkán módosul, a lekérdezés sebessége a fontos
Dinamikus
Sokat módosítjuk, nincs annyit lekérve az adat
Költségek
- Nyilván, memóriában gyorsabban dolgozunk, mint háttértárolókon (duh)
- Az író-olvasó fej nagyobb mennyiségeket olvas be
- ezek a Blokkok
- A blokkok mérete függ(het)
- OS-től
- DBMS-től
- Hardvertől
- 🍊le esetén a blokkméret alapértelmezetten 8K
A blokkok műveletét fogjuk figyelembe venni, hiszen a rendszertől függő "konstans" blokkméret nem fog változni.
A blokkműveletek száma elég lesz a becslésekhez
Indexelés (now rly)
- A fájlokat (is) érdemes blokkokba szervezni
- A fájl rekordokból áll
- A rekordok szerkezete eltérő lehet
- A rekord tartalmaz
- Leíró fejlécet:
- Rekord struktúrájának leírása
- Külső/belső mutatók (rekord kezdeti pontja, előző/következő rekord)
- Törlési bit
- Statisztikák
- Mezőket
- Adatokkal
- Néha üres
- Leíró fejlécet:
- A rekord hossza lehet
- Állandó
- Változó (Ismétlődő mezők, megszorítatlan sSSStringek, stb...)
- Blokk tartalmaz:
- Leíró fejlécet:
- Rekordok száma, struktúrája
- Külső/belső mutatók (hol vannak üres helyek, előző/következő blokk)
- Statisztikák (melyik fájlból hány rekord van a blokkban)
- Rekordok
- Egy vagy akár több fájlból
- Üres helyeket
- Leíró fejlécet:
Törlési bit használatával nem kell a fájlt nagyban módosítani (egyenlőre)
DB2 innentől feltételezni fogja, hogy a rekordok hossza állandó