[ *.net @ 24.07.2002. 18:47 ] @
Imam bazu, serverski program koji sluzi za uredjivanje baze na tom istom racunanru. Klijenti po teoriji , treblao bi da sto vise koriste stored procedure da bi smanjili mrezni saobracaj, barem koliko sam ja citao. Da li u tom slucaju uskladistena procedura predstavalja dobro resenje i za serverski program ili je bolje da on salje ceo sql upit sobzirom da ne ide na mrezu vec je na tom lokalnom racunaru i baza i time manje optereti samu bazu?
[ degojs @ 24.07.2002. 20:13 ] @
Kod SP ne radi se samo o mreznom saobracaju. SP se izvrsavaju brze nego SQL upiti koje saljes bazi. Drugo, ako imas neki bug ili apdejt: vrsis ispravku na jednom mestu umesto na gomili klijenata. Trece, sto se tice sigurnosti: bolje je koristiti SP.
Za bazu je manje opterecenje da pozivas SP nego da saljes identican SQL upit.

Ukratko, ako vec imas SP onda je i iskoristi.
[ *.net @ 24.07.2002. 21:41 ] @
hmmm, ja sam imao laicki utisak da se baza vise greje kada odradjuje stored procedure nego kada joj posaljes upit.
hvala
[ Mihailo @ 25.07.2002. 01:26 ] @
To je nemoguće, ako isti SQL upit i SP, u najgorem slučaju će jednako brzo da se izvrše. Naravno, osim ako je ne kompajliraš svaki put kada je pozivaš. Upravo je poenta u tome - procedura se prvi put kompjalira, serverov engine optimizuje tvoj SQL upit i time dobijaš brže izvršenje kada je pozivaš.

Kada je opterećenje mreže u pitanju, tu nema "optimizacije" - jednostavno, uvek dobiješ istu količinu podataka, a ono što pošalješ kao upit je naravno zanemarljivo.
[ Riste Pejov @ 25.07.2002. 09:08 ] @
Ukoliko ne koristis SP, onda se upit prvo parsira, onda sprema (prepare) i na kraju se izvrsava,
kod SP, prva dva koraka se izvrsavaju samo kod prvog kompajliranja SP-a, tako da pri svakog
narednog pozivanja iste, SQL engine ne parsira, i ne sprema SQL upit.

I na kraju dolazimo do zakljucka da je brze izvrsavati SP nego grupa razlicnih SQL upita.

E sad, kod MS SQL servera (ne znam o ostalim serverima), optimizer moze da se poziva pri svakog izvrsavanja SP-a,
tako da optimizer koristi momentalno stanje index-a.