šta sve utiče na brzinu izvršavanja SQL upita, i kako
što bolje riješiti ove probleme.
Znam da se ove stvari rješavaju drugačije od slučaja do slučaja,
ali postoje i neke generalne stvari koje vrijede gotovo uvijek.
Najprostiji primjer je kad nije kreiran index po nekoj koloni
koja se koristi u JOIN-u.
Takav upit (u zavisnosti od broja zapisa) može da traje satima, izgleda
kao da se neće ni izvršiti i zauzima dosta resursa.
Ne mijenjajući upit (koji je u principu i dobar) i samo prostim
kreiranjem index-a po toj koloni, rezultati se drastično mijenjaju i
upit se izvršava veoma brzo (u par sekundi ili minuta, opet zavisno od broja
zapisa).
Razlog ovome je što Firebird ne kreira automatski index-e, već ih samo
koristi ako već postoje. Ovo, čini mi se, vrijedi i za Firebird 2.0 iako se
napominje da je brži u radu od verzije 1.5.
Evo jedan link koji govori o optimizaciji, korištenju PLAN-a...
http://www.ibphoenix.com/main.nfs?a=ibphoenix&page=ibp_quep
E, sad, vaša iskustva, gdje ste najviše dobili na brzini (bilo kako,
npr. koristeći druge komponente za rad sa Firebird-om,
koliko utiče korištenje UDF,
na šta treba najviše obratiti pažnju kod samog dizajna baze...).
Naravno, ako neko zna kakve dobre knjige, tutorijale i primjere
za optimizaciju upita, u elektronskom formatu, slobodno neka da linkove.
