Author - MilošSQL

Dizajniranje i optimizacija indeksa u SQL Serveru

Ovaj kompakt seminar (4 sata) prvenstveno je namenjen programerima koji razvijaju aplikacije i servise koji koriste SQL Server bazu podataka. Mnogi koncepti, saveti i procedure primenljivi su i na druge RDBM sisteme, ali su primeri optimizovani za najpopularniju Microsoftovu bazu.

Indeksi su neizostavno važni objekti za performanse sistema, ali mnogi programer, neretko i dejtabejz developer kuburi sa njihovim ispravnim dizajnom. Dobro dizajniranom indeksu obično prethode tačni odgovori na sledeća pitanja:

  • kako napraviti dobar indeks, kako odabrati kolonu ili kolone za ključ indeksa?
  • koja kolona da bude prva i kada?
  • koliko kolona da uključimo u indeks, a koliko samo u leaf level?
  • kada SQL Server koristi indeks, a kada i zašto ne?
  • kako način na koji je korinsik napisao upit utiče na efikasnost upotrebe indeksa u planu izvršavanja i kako izbeći tipične greške?
  • kada bi trebalo praviti kompozitne indekse?
  • da li IDENTITY kolona treba da bude cluster indeks?
  • kada tzv. heap tabele imaju smisla?

S obzirom na to da su klasični negrupišući indeksi najrasprostranjeniji ovaj seminar je fokusiran na dizajniranje tih indeksa. Pored toga, dotaći ćemo se i specijalnih indeksa (filter, computed column i columnstore).

Na kraju, pozabavićemo se i održavanjem indeksa, pokazaćemo kako da vidite da li i koliko se pojedini indeksi koriste, koji indeksi bi znatno popravili performanse sistema, šta je to fragmentacija, kada ona predstavlja problem i kako se to rešava.

Nakon seminara steći ćete dovoljno znanja da Vam indeksi u SQL Serveru više neće biti velika nepoznanica.