DevProTalk

Forumi IT profesionalaca
web development, web design, e-business, SEO


Idite nazad   DevProTalk > Web development i web aplikacije > SQL baze podataka - Sponzor: Baze-Podataka.net
Želite da se reklamirate ekskluzivno na ovoj poziciji? Javite se

SQL baze podataka - Sponzor: Baze-Podataka.net MySQL, MSSQL, Oracle, Access, ODBC. Ako imate problem brže i preciznije ćete dobiti odgovor ako priložite strukturu tabela ili skript koji kreira tabele i puni ih test podacima umesto što to problem opisujete samo rečima. Sponzor: Baze-Podataka.net - Blog o bazama podataka

Odgovori
 
Alati teme Način prikaza
Staro 14. 04. 2008.   #1
_korso_
profesionalac
Qualified
 
Avatar _korso_
 
Datum učlanjenja: 21.06.2007
Poruke: 166
Hvala: 27
42 "Hvala" u 23 poruka
_korso_ is on a distinguished road
Default stored procedure brzina

Imam jedno pitanje, vezano za stored procedure kod Sql Server-a 2005. Da napomenem da ih nikad nisam pisao. Jedino sam video kako izgledaju.
Pitanje bi glasilo ovako: "Da li je brze izvrsavanje SP-e ili obicnog upita ?".
E sada, verovatno da se ovo moze sagledati sa raznih strana.
Nema smisla govoriti o zameni upita "select * from users where userid=1" stored procedurom.
Ali tamo gde se vrsi join nad vise tabela, ili gde ima dosta podataka za obradu (par hiljada, desetina hiljada slogova) ili pak tamo gde se izvlace podaci koji bi se mozda dobili sekvencijalnim izvrsavanjem par upita.
Interesuju me vasa iskustva sa ovim (ukoliko ste ih imali) ?
Takodje koliko bi imalo smisla koristiti iste na web-u (opet vezano za brzinu, ako postoji taj speed issue).
Moje neko licno misljenje (mozda posto ih nisam koristio) je da je ipak brzina izvrsavanja obicnih upita veca, ali ... mozda to zavisi od slucaja do slucaja ?
//edit
sada sam bas video jedan zanimljiv tekst
http://statestreetgang.net/post/2008...rocedures.aspx

Poslednja izmena od _korso_ : 14. 04. 2008. u 12:30.
_korso_ je offline   Odgovorite uz citat
Staro 14. 04. 2008.   #2
jablan
VD IT Direktora
Invented the damn thing
 
Avatar jablan
 
Datum učlanjenja: 08.06.2005
Lokacija: Beograd
Poruke: 2.118
Hvala: 503
1.307 "Hvala" u 282 poruka
jablan je pravi dragi kamenjablan je pravi dragi kamenjablan je pravi dragi kamenjablan je pravi dragi kamenjablan je pravi dragi kamenjablan je pravi dragi kamenjablan je pravi dragi kamenjablan je pravi dragi kamenjablan je pravi dragi kamenjablan je pravi dragi kamen
Default

Načelno, nema mnogo prednosti u korišćenju SP sve dok ne odlučiš da malo veće parčiće koda postaviš u njih (kreiranje nekih temp tabela, rad sa kursorima, prosleđivanje kolekcija kroz parametre kao XML, itd). Sa druge strane, SP ti ostavljaju manje mogućnosti da brljaš (upiti svuda u kodu, sklapanje koje omogućava SQL injection itd).

Moj generalni savet je da ih koristiš.
__________________
blog
jablan je offline   Odgovorite uz citat
Staro 14. 04. 2008.   #3
Dejan Topalovic
old school
Professional
 
Datum učlanjenja: 15.02.2006
Lokacija: Wien, Austria
Poruke: 304
Hvala: 121
47 "Hvala" u 26 poruka
Dejan Topalovic će postati "faca" uskoro
Pošaljite poruku preko MSN za Dejan Topalovic
Default

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.
__________________
Blog: Baze podataka
------------------------
Oracle OCP DBA
Oracle OCE SQL Expert
Oracle OCP Developer
Certified MySQL DBA

Poslednja izmena od Dejan Topalovic : 14. 04. 2008. u 14:14.
Dejan Topalovic je offline   Odgovorite uz citat
Staro 14. 04. 2008.   #4
_korso_
profesionalac
Qualified
 
Avatar _korso_
 
Datum učlanjenja: 21.06.2007
Poruke: 166
Hvala: 27
42 "Hvala" u 23 poruka
_korso_ is on a distinguished road
Default

@Dejan Topalovic
Ne verujem (uglavnom uvek) onome sto procitam ili cujem, dok se na ovaj ili onaj nacin, ne uverim sam.

A i hvala na odgovorima BTW. Brzina mi je bitna posto se radi o web aplikaciji.
Uglavnom baza sa kojom cu da radim je vec u funkciji, koristi se u par drugih desktop aplikacija. Takodje postoje neke gotove procedure koje se koriste,ali
neke od njih se bas dugo izvrsavaju, oko 10tak sec. Za web je to rekao bih, puno vremena. Zbog toga sam i pitao o razlici u brzini, posto cu morati neke od tih i sam da koristim.
_korso_ je offline   Odgovorite uz citat
Staro 14. 04. 2008.   #5
Dejan Topalovic
old school
Professional
 
Datum učlanjenja: 15.02.2006
Lokacija: Wien, Austria
Poruke: 304
Hvala: 121
47 "Hvala" u 26 poruka
Dejan Topalovic će postati "faca" uskoro
Pošaljite poruku preko MSN za Dejan Topalovic
Default

@_korso_: Mozes li kopirati source code od tih upita ili procedure, da pokusamo optimizovati upite? Prilozi takodje i DDL izraze (za CREATE TABLE).
__________________
Blog: Baze podataka
------------------------
Oracle OCP DBA
Oracle OCE SQL Expert
Oracle OCP Developer
Certified MySQL DBA
Dejan Topalovic je offline   Odgovorite uz citat
Staro 14. 04. 2008.   #6
_korso_
profesionalac
Qualified
 
Avatar _korso_
 
Datum učlanjenja: 21.06.2007
Poruke: 166
Hvala: 27
42 "Hvala" u 23 poruka
_korso_ is on a distinguished road
Default

Evo koda za jednu SP. Posto je malo veci saljem ga kao attachment. Script tabele trenutno nemam kod sebe.
Posteno ja ne mogu da se snadjem u prilozenoj proceduri, osim sto vidim da je par tabela u igri.
Priloženi fajlovi
Tip fajla: txt attachment.txt (21,4 KB, 1494 pregleda)
_korso_ je offline   Odgovorite uz citat
Staro 14. 04. 2008.   #7
jablan
VD IT Direktora
Invented the damn thing
 
Avatar jablan
 
Datum učlanjenja: 08.06.2005
Lokacija: Beograd
Poruke: 2.118
Hvala: 503
1.307 "Hvala" u 282 poruka
jablan je pravi dragi kamenjablan je pravi dragi kamenjablan je pravi dragi kamenjablan je pravi dragi kamenjablan je pravi dragi kamenjablan je pravi dragi kamenjablan je pravi dragi kamenjablan je pravi dragi kamenjablan je pravi dragi kamenjablan je pravi dragi kamen
Default

Citat:
Originalno napisao Dejan Topalovic Pogledajte poruku
@_korso_: Mozes li kopirati source code od tih upita ili procedure, da pokusamo optimizovati upite? Prilozi takodje i DDL izraze (za CREATE TABLE).
Tražili ste - gledajte...
__________________
blog
jablan je offline   Odgovorite uz citat
Staro 14. 04. 2008.   #8
Dejan Topalovic
old school
Professional
 
Datum učlanjenja: 15.02.2006
Lokacija: Wien, Austria
Poruke: 304
Hvala: 121
47 "Hvala" u 26 poruka
Dejan Topalovic će postati "faca" uskoro
Pošaljite poruku preko MSN za Dejan Topalovic
Default

Citat:
Originalno napisao jablan Pogledajte poruku
Tražili ste - gledajte...
Napisao sam "pokušamo", a ne "pokušam".
Ima li neko drugi, ko se bolje razumije u SQL Server, jer sam tu tanak skroz?
Jedino da portiram source code na Oracle...

@_korso_: Pogledao sam malo tvoju proceduru i vidim da se tu podaci provjeravaju i obrađuju po određenim uslovima, tako da ne vjerujem da u ovom slučaju možeš izbjeći korištenje uskladištene procedure...

Ovo bih mogao uzeti kao temu za novi tekst na blogu - "Uskladišena procedura vs. direktni SQL upiti".
__________________
Blog: Baze podataka
------------------------
Oracle OCP DBA
Oracle OCE SQL Expert
Oracle OCP Developer
Certified MySQL DBA
Dejan Topalovic je offline   Odgovorite uz citat
Staro 14. 04. 2008.   #9
jablan
VD IT Direktora
Invented the damn thing
 
Avatar jablan
 
Datum učlanjenja: 08.06.2005
Lokacija: Beograd
Poruke: 2.118
Hvala: 503
1.307 "Hvala" u 282 poruka
jablan je pravi dragi kamenjablan je pravi dragi kamenjablan je pravi dragi kamenjablan je pravi dragi kamenjablan je pravi dragi kamenjablan je pravi dragi kamenjablan je pravi dragi kamenjablan je pravi dragi kamenjablan je pravi dragi kamenjablan je pravi dragi kamen
Default

Pa ima kursore - teško da će to moći van SP.

A sad, da raspetljavam SP od kilo linija, i to još iz bankarstva, neka hvala, to ni za pare ne radim...
__________________
blog
jablan je offline   Odgovorite uz citat
Staro 14. 04. 2008.   #10
_korso_
profesionalac
Qualified
 
Avatar _korso_
 
Datum učlanjenja: 21.06.2007
Poruke: 166
Hvala: 27
42 "Hvala" u 23 poruka
_korso_ is on a distinguished road
Default

Citat:
Originalno napisao jablan Pogledajte poruku
iz bankarstva, neka hvala, to ni za pare ne radim...
takodje moja omiljena oblast

Citat:
Originalno napisao Dejan Topalovic Pogledajte poruku
Ovo bih mogao uzeti kao temu za novi tekst na blogu - "Uskladišena procedura vs. direktni SQL upiti".
Mislim da bi to bilo lepo , ali vezano za mysql, pa sto da ne i oracle.

Sve u svemu videcu sta cu sa ovim da radim i kako cu da se iskobeljam sa ovim procedurama, jer ima jos par ovakvih a neke idu i do 1,5 K koda.
Bice veselo...
_korso_ je offline   Odgovorite uz citat
Odgovori



Pravila pisanja
Možete ne započinjati nove teme
Možete ne slati odgovore
Možete ne slati priloge
Možete ne izmeniti svoje poruke
vB kôd je Uključen
Smajliji su Uključen
[IMG] kod je Uključen
HTML kôd je Isključen
Pogledajte forum

Slične teme
Tema Početna poruka teme Forum Odgovori Poslednja poruka
Malkice zbunjen... ADSL konekcija (brzina) Aleksandar Mitić Sva početnička pitanja 5 15. 02. 2010. 08:23
Brzina linka orangem Sva početnička pitanja 9 21. 02. 2008. 03:08
SQL Procedure Blood SQL baze podataka - Sponzor: Baze-Podataka.net 15 18. 03. 2006. 09:27


Vreme je GMT +2. Trenutno vreme je 01:49.


Powered by vBulletin® Verzija 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Copyright © DevProTalk. All Rights Reserved.
Mišljenja, saveti, izjave, ponude ili druge informacije ili sadržaji nastali na Sajtu su vlasništvo onoga ko ih je kreirao, a ne DevProTalk.com, tako da ne morate da se oslanjate na njih.
Autori poruka su jedini odgovorni za ovakve sadržaje. DevProTalk.com ne garantuje tačnost, kompletnost ili upotrebnu vrednost informacija, stavova, saveta ili datih izjava. Ne postoje uslovi pod kojima bi mi bili odgovorni za štetu ili gubitak koji je posledica bilo čijeg oslanjanja na nepouzdane informacije, ili bilo kakve informacije nastale kroz komunikaciju između registrovanih članova.
Web sajt može sadržavati linkove na druge web sajtove na Internetu ili neke druge sadržaje. Ne kontrolišemo niti podržavamo te druge web sajtove, niti smo pregledali bilo kakve sadržaje na takvim sajtovima. Mi nećemo biti odgovorni za legalnost, tačnost ili prikladnost bilo kog sadržaja, oglasa, proizvoda, usluga ili informacije lociranim na ili distribuiranih kroz druge web sajtove, niti za bilo kakvu štetu nastalu kao posledica takvih informacija. DevProTalk.com drži i čuva druga prava vlasništva na web sajtu. Web sajt sadrže materijale zaštićene copyright-om, zaštitne znakove i druge informacije o pravu vlasništva ili softver. Članovi mogu poslatu informacije zaštićene pravima vlasništva njihovih nosilaca i ona ostaju zaštićena bez obzira da li su oni koji prenose te informacije to naveli ili ne. Osim informacija koje su u javnom vlasništvu ili za koje dobijete dozvolu, nemate pravo da kopirate, modifikujete ili na bilo koji način menjate, objavljujete, prenosite, distribuirate, izvršavate, prikazujete ili prodajte bilo koju informaciju zaštićenu pravima vlasništva. Slanjem informacija ili sadržaja na bilo koji deo DevProTalk.com, Vi automatski dozvoljavate i predstavljate garanciju da imate pravo da dozvolite DevProTalk.com ili članovima DevProTalk.com bespovratnu, kontinualnu, neograničenu, globalnu dozvolu da koriste, kopiraju, izvršavaju, prikazuju i distribuiraju takve informacije i sadržaje i da iz takvih sadžaja koriste bilo koji deo u bilo koje svrhe, kao i pravo i dozvolu da koriste gore navedene sadržaje. Svi zaštitni znakovi (trademarks), logotipi, oznake usluga, firme ili imena proizvoda koji se pominju na ovom web sajtu su vlasništvo kojim raspolažu njihovi vlasnici.