Principijelno su direktni SQL upiti brzi od uskladistenih procedura, ali sve zavisi od namjene i kolicine zatrazenih/obradjenih podataka.
Ukoliko imas potrebu za serijskim izvrsavanjem veceg broja upita i za obradom tih dobijenih podataka, onda su uskladistene procedure bolje rjesenje.
Iz mog visegodisnjeg iskustva u radu sa Oracleom (jbg, ne radim sa SQL Serverom), mogu ti potvrditi da su direktni SQL upiti daleko brzi nego da koristis uskladistenu proceduru (zato sto Oracle u uskladistenoj proceduri skace sa RDBMS engina na PL/SQL engine i obrnuto, da ne davim sad internim funkcionisanjem baze), ali direktne upite veoma rijetko koristimo, jer nam je baza oko 90% DataWarehouse orjentisana (import podataka, dnevni/sedmicni/mjesecni/kvartalni/godisnji obracuni, export podataka i td.), a 10% OLTP orjentisana (za Web formulare i par aplikacija za rucni unos podataka).
Mi imamo poprilican broj uskladistenih procedura, koje se pozivaju iz razlicitih aplikacija radjenih u Javi, C# i Delphiju - zamisli sta bi bilo da smo za svaku aplikaciju morali pisati/prilagodjavati SQL upite... Ili da moras mijenjati neki upit da bi dodao par kolona ili neko ogranicenje u WHERE klauzulu - u proceduri moras samo jednom izmijeniti, a u suprotnom bi u svakoj aplikaciji morao da trazis te upite i mijenjati ih jedno po jedno...
Ako podatke zelis samo izlistati iz baze i prikazati na ekranu/papiru, onda pokusaj za tu namjenu koristiti direktni SQL upit. Ukoliko ti je brzina veoma bitna, onda se isplati napisati i kompleksniji SQL upit, nego koristiti uskladistenu proceduru. U svakom drugom slucaju - uskladistena procedura.
Poslednja izmena od Dejan Topalovic : 14. 04. 2008. u 13:14.
|