280-300 Flashcards
Navesti i ukratko objasniti osnovne metode optimizacije baze
podataka.
- Optimizacija na nivou interne organizacije podataka – ne uvodi se razlika između fizičkog i
logičkog modela. Ostvaruje se kroz upravljanje internom organizacijom podataka,
pomoćnim komponentama i resursima. - Optimizacija na nivou upita – ne uvodi se razlika između fizičkog i logičkog modela. Vrši se
pisanje upita na način koji omogućava njihovo efikasnije izvršavanje. - Optimizacija na nivou strukture podataka – uvodi se razlika između fizičkog i logičkog
modela. Organizacija tabela se menja u odnosu na logički model.
Objasniti šta je optimizacija na nivou interne organizacije
podataka.
Ne uvodi se razlika između fizičkog i logičkog modela. Ostvaruje se kroz upravljanje internom
organizacijom podataka, pomoćnim komponentama i resursima
Objasniti šta je optimizacija na nivou upita.
Ne uvodi se razlika između fizičkog i logičkog modela. Vrši se pisanje upita na način koji
omogućava njihovo efikasnije izvršavanje.
Objasniti šta je optimizacija na nivou strukture podataka.
Uvodi se razlika između fizičkog i logičkog modela. Organizacija tabela se menja u odnosu na
logički model. Ako imamo uzorak radnog opterećenja i odgovarajuće planove izvršavanja, onda
možemo da sprovedemo optimizaciju strukture baze podataka. Optimizacija fizičkog dizajna
menjanjem fizičke strukture baze podataka
Šta je plan izvršavanja upita i od čega se sastoji?
Plan izvršavanja upita obuhvata: redosled koraka pri izvršavanju; operacije koje se izvršavaju u
pojedinim koracima; strukture podataka koje se upotrebljavaju; način svakog pojedinačnog
pristupanja podacima; procenjuju cenu svakog od koraka i celog posla. Većina savremenih SUBP
omogućava korisniku da sagleda plan izvršavanja pre nego što se pokrene izračunavanje upita.
Objasniti razlike između statičkih i dinamičkih upita.
Prema trenutku pravljenja plana izvršavanja upita, način izvršavanja upita može da bude:
1. statički – plan izvršavanja se pravi unapred, pri prevođenju programa. Programi sa statičkim
upitima su statički programi. Plan izvršavanja upita nekog programa se evidentira u BP.
Korisnik koji ugrađuje program mora da ima autorizaciju za izvršavanje statičkih upita i
naredbi. Plan izvršavanja se pravi samo jedanput. Optimizovani su prema stanju baze
podataka u trenutku ugradnje paketa.
2. dinamički – plan izvršavanja se pravi pri izvršavanju upita. Korisnik koji izvršava program
mora da ima autorizaciju za izvršavanje dinamičkih upita i naredbi i autorizaciju za
izvršavanje statičkog programa. Plan izvršavanja se pravi svaki put ponovo. Optimizovani
su na najbolji mogući način
Kako se računa cena pojedinačnih koraka (operacija) u planu
izvršavanja upita?
Pri računanju cene pojedinačne operacije uzimaju se u obzir sledeće informacije: cena uređaja; broj
redova u tabeli; popunjenost stranica; selektivnost upita; cena same operacije nad dohvaćenim
podacima. Većina tih informacija je tačna samo ako su ažurni statistički podaci o sadržaju baze
podataka.
Navesti nekoliko operacija koje se najčešće pojavljuju u planu
izvršavanja upita.
- TBSCAN – čitanje redova podataka neposredno iz tabele
- IXSCAN – pretraživanje indeksa i čitanje pokazivača na redove
- EISCAN – pretraživanje indeksa po složenijim uslovima i čitanje pokazivača na redove
- RIDSC – čitanje svih pokazivača na redove iz indeksa
- FETCH – čitanje sadržaja kolona iz datog reda
- HSJOIN – heš spajanje, unutrašnja tabela se pretražuje za svaki red spoljašnje
- NLJOIN – ugneždeno spajanje, unutrašnja tabela se pretražuje za svaki red spoljašnje
- MSJOIN – merge spajanje, kada su obe tabele uređene po uslovu spajanja
- SORT – uređivanje redova, opciono bez ponavljanja
Šta je optimizacija upita? U čemu se razlikuju automatska i
manuelna optimizacija?
Optimizacija upita podrazumeva optimizaciju svih vidova upotrebe baze podataka, što uključuje i
čitanje i menjanje sadržaja baze podataka.
Optimizacija upita је manuelno ili automatsko odabiranje najpovoljnijeg plana izvršavanja upita
radi postizanja boljih performansi. Većina savremenih SUBP raspolaže solidnim optimizatorima
upita.
Uloga manuelne optimizacije upita je važnija u fazi pravljenja fizičkog modela nego u eksploataciji
– ne optimizuje se upit, nego se analiziraju planovi izvršavanja radi sagledavanja i prevazilaženja
eventualnih slabosti predloženog modela.
Koji faktori utiču na rezultat optimizacije upita?
Pri pronalaženju najboljeg plana izvršavanja uzimaju se u obzir raspoloživi podaci o bazi podataka:
→ struktura tabela i ključeva; struktura upita; postojeći indeksi; statistički podaci o sadržaju tabela i
atributa; podaci o brzini fizičkih uređaja; veličina bafer stranica.
Šta je uzorak radnog opterećenja baze podataka i čemu služi?
Uzorak radnog opterećenja je skup tipičnih upita za koje se zna da će činiti najčešći oblik
pristupanja bazi podataka. Dobar uzorak se sastoji od: skupa upita i promena baze podataka; za
svaki upit i promenu postoji i procenjena učestalost izvršavanja i posebno opterećenje; formulisanih
ciljnih performansi.
Za upite: prepoznaje se koje se relacije koriste; koji atributi se izdvajaju; koji atributi učestvuju u
uslovima spajanja i restrikcije.
Za promene baze, pored toga: vrsta promene; atributi koji se menjaju
Koji su ciljevi optimizacije strukture baze podataka?
- Prepoznavanje indeksa koje moramo da napravimo
- Prepoznavanje potrebnih promena u fizičkoj shemi
Navesti osnovne metode optimizacije strukture baze podataka.
Uvođenje pogleda da bi se sakrile načinjene promene; alternativna normalizacija; denormalizacija.
Šta je „alternativna normalizacija“? Kada se i zašto koristi?
Pri normalizovanju ne postoji samo jedno moguće rešenje. Ako jedno rešenje ne daje
zadovoljavajuće rezultate, možda drugo daje
Objasniti ulogu denormalizacije u optimizaciji baze podataka.
Denormalizacija je promena strukture BP tako da se svesno narušava dostignuta normalna forma.
Optimizacija strukture baze podataka često predstavlja vid denormalizacije. Neke tehnike: podela
tabela (dekompozicija), spajanje tabela (kompozicija) i dupliranje podataka.
Objasniti ulogu dekompozicije tabela u optimizaciji baze podataka.
Ako imamo tabelu sa mnogo redova ili kolona, koja se često menja, onda promene mogu da budu
neefikasne (indeksi postaju duboki i često se čita sa diska; upiti koji ne koriste indekse su tim pre
neefikasni). Jedan način da se rad ubrza je da se tabela podeli na dve ili više tabela: horizontalna ili
vertikalna podela.
Kakve oblike dekompozicije tabela koristimo pri optimizaciji
strukture baze podataka?
- Horizontalna – redovi tabele se podele u dve tabele sa istom strukturom. Obično jedna
sadrži tzv. nove ili aktivne podatke, a druga tzv. stare ili arhivske podatke. Ubrzavaju se
neke operacije (dodavanje i menjanje novih podataka). Dodatno se komplikuju neke
operacije (analitički upiti nad svim podacima). Particionisanje tabela je vid horizontalne
podele. - Vertikalna – ako se većina kolona ne koristi u svim upitima, već samo relativno retko, onda
se česte operacije mogu ubrzati vertikalnom podelom. Prave se dve ili više tabela – svaka
sadrži kolone primarnog ključa, a sve ostale kolone se grupišu prema potrebi. Ubrzavaju se
neke česte operacije, dok se neke operacije dodatno komplikuju (analitički upiti nad svim
podacima).
- Šta je „dogma o denormalizaciji“?
Uvrežen je stav da je normalizovana baza podataka neefikasna. Međutim, to važi samo za
specifične okolnosti i nije opšte pravilo. Denormalizacija vrlo često doprinosi efikasnosti ili sasvim
malo ili nimalo. To je samo jedan od mogućih koraka. Npr. baza podataka može da bude neefikasna
ako je: normalizovana, veoma velika, mnogo su češći upiti nego transakcije ili upiti zahtevaju
velika spajanja nad velikim skupom podataka.
Spajanje tabela u optimizaciji baze podataka.
Tabele koje se često spajaju u upitima, može da bude korisno spojiti u jednu tabelu. Spajanje je
veoma skupa operacija i ovakva promena može da ima značajne efekte. Dobijena tabela obično
narušava normalne forme i sadrži neke redundantnosti. To dodatno otežava održavanje podataka i
staranje o integritetu. Može da se značajno poveća broj redova ili ukupno zauzeće prostora.
Optimizacija hijerarhija entiteta.
Pri pravljenju logičkog modela hijerarhija može da se prevede u relacije (tabele) na bar tri osnovna
načina:
1. Jedna integralna tabela
2. Za svaki tip zasebna tabela, koja ima samo kolone ključa i kolone novih atributa
3. Za svaki neapstraktan tip zasebna tabela, koja ima sve potrebne kolone
4. Različite kombinacije
Čest je problem sa hijerarhijama: pri pravljenju logičkog modela se razmatraju kriterijumi logičkih
veza među podacima; pri pravljenju fizičkog modela zbog efikasnosti može da bude bolje da se
primeni drugo rešenje.
Stabilno rešenje za hijrerhije. Da se sve operacije čitanja odvijaju kroz poglede koji zaokružuju sve
potrebne podatke o elementima hijerahije. Da se “zabrane” direktne operacije menjanja podataka u
tabelama koje pripadaju hijerarhiji. Da se sva pisanja izvode kroz okidače na pogledima ili
predefinisane procedure.
Šta su okidači na pogledima i kako mogu da se koriste u okviru
optimizacije strukture baze podataka?
Jedan od problema sa optimizacijom strukture BP je da se dobija implementacija koja odstupa od
logičkog modela. Specifičnosti fizičkog modela mogu da se sakriju pogledima. Problem klasičnih
pogleda je da se iole složeniji pogledi ne mogu koristiti za menjanje podataka, već samo za čitanje.
To se rešava pomoću pogleda sa okidačima. Okidači nad pogledima se definišu kao zamena za
operacije neposrednog menjanja podataka.