P:
Što defragmentacija čini za SQL sustave?
A:Kontinuirano održavanje i nadzor baze podataka ključni su elementi koje treba uzeti u obzir za nesmetano pokretanje SQL sustava. Kada se baza podataka stvori i popuni, u početku se podaci smještaju u neposredni fizički položaj (ako ima dovoljno neprekidnog fizičkog prostora). Dakle, u ovom slučaju logično redoslijed i fizičko uređivanje podataka vjerojatno će biti slični, a povećavaju performanse.
Kada se podaci izmijene, izbrišu ili ažuriraju, relevantni indeksi se također automatski ažuriraju kako bi se odrazile te promjene. Kao rezultat, indeksi se fragmentiraju, a informacije raspršuju po prostoru za pohranu. To mijenja fizički poredak podataka (jer se gubi neprestano raspoređivanje), a preuzimanje postaje dugotrajno, što rezultira sporom izvedbom baze podataka.
Rješenje ovog problema je provođenje defragmentacije periodično. Defragmentacija zapravo obnavlja ili reorganizira indekse da usklade logički poredak podataka s fizičkim redoslijedom. Prije izvođenja bilo koje operacije defragmentacije, sve indekse potrebno je pravilno analizirati. Rezultati analize određuju je li potrebna reorganizacija ili obnova.
Dvije glavne operacije izvedene postupkom defragmentacije su:
- Reorganizacija indeksa - Reorganizacija indeksa vrši se kada je fragmentacija na niskoj razini i na performanse nema ozbiljnih utjecaja. U ovom se procesu fizički preuređivanje stranica na razini listova podudara s logičkim redoslijedom. Ne stvara nikakve nove stranice; ona samo redoslijedi postojeće stranice. Reorganizacija se može izvesti dok je sustav na mreži bez blokiranja uobičajenih operacija baze podataka.
- Ponovna izgradnja indeksa - Postupak obnove indeksa provodi se kada je fragmentacija na dubljoj razini, a performanse su prespori. U tom se procesu originalni indeks ispada i stvara se novi svježi indeks. Tako se fizički i logički redoslijed vraćaju u prvobitne položaje, a izvedba se poboljšava. Obnova također može stvoriti nove stranice prema potrebi, a može se izvoditi i izvanmrežno ili na mreži.
Stoga bi defragmentacija trebala biti dio procesa održavanja SQL Servera i treba ga shvatiti ozbiljno. Mora se izraditi i slijediti pravilan plan analize upita. Na temelju rezultata upita mora se izvršiti ponovna izgradnja ili reorganizacija indeksa. Ukratko, defragmentacija je ključna za poboljšanje performansi SQL sustava.