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 |
|
Alati teme | Način prikaza |
14. 04. 2008. | #1 |
profesionalac
Qualified
Datum učlanjenja: 21.06.2007
Poruke: 166
Hvala: 27
42 "Hvala" u 23 poruka
|
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. |
14. 04. 2008. | #2 |
VD IT Direktora
Invented the damn thing
Datum učlanjenja: 08.06.2005
Lokacija: Beograd
Poruke: 2.118
Hvala: 503
1.307 "Hvala" u 282 poruka
|
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 |
14. 04. 2008. | #3 |
old school
Professional
|
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. |
14. 04. 2008. | #4 |
profesionalac
Qualified
Datum učlanjenja: 21.06.2007
Poruke: 166
Hvala: 27
42 "Hvala" u 23 poruka
|
@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. |
14. 04. 2008. | #5 |
old school
Professional
|
@_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 |
14. 04. 2008. | #6 |
profesionalac
Qualified
Datum učlanjenja: 21.06.2007
Poruke: 166
Hvala: 27
42 "Hvala" u 23 poruka
|
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. |
14. 04. 2008. | #8 |
old school
Professional
|
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 |
14. 04. 2008. | #9 |
VD IT Direktora
Invented the damn thing
Datum učlanjenja: 08.06.2005
Lokacija: Beograd
Poruke: 2.118
Hvala: 503
1.307 "Hvala" u 282 poruka
|
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 |
14. 04. 2008. | #10 | |
profesionalac
Qualified
Datum učlanjenja: 21.06.2007
Poruke: 166
Hvala: 27
42 "Hvala" u 23 poruka
|
takodje moja omiljena oblast
Citat:
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... |
|
|
|
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 |