Racunanje u bazi

poruka: 20
|
čitano: 5.766
|
moderatori: Lazarus Long, XXX-Man, vincimus
1
+/- sve poruke
ravni prikaz
starije poruke gore
15 godina
neaktivan
offline
Racunanje u bazi

Imam jednostavnu bazu sa poljima: *PROIZVOD, *KOLICINA, *CIJENA, *UKUPNO. Kako da izracunam *KOLICINA x *CIJENA i da se taj rezultat upise u polje *UKUPNO?

Dakle, treba sve biti u okviru samog Accessa.

 

Pozdrav svima

 
0 0 hvala 0
16 godina
neaktivan
offline
RE: Racunanje u bazi

probaj ovako

UPDATE racunStavka SET ukupno = kolicina * cijena
WHERE id = 1
gdje je "racunStavka" ime tablice.

 

Uvjet prilogadiš svojim potrebama.

 

pogledaj sljedeći link, možda ti bude koristio

http://www.techonthenet.com/sql/index.php

 

i-VTEC
15 godina
neaktivan
offline
RE: Racunanje u bazi

Moj je prijedlog kolona calculated tipa. Neznam kako se to točno zove i Accessu a riješava ovaj problem gdje bi bio down raditi stalno ovakvo računanje pri svakom upitu a s druge strane raditi kolonu za kako se kaže informaciju a ne podatak - znači nešto što ovisi o drugim vrijednostima te se točno može dobiti iz njih.

16 godina
odjavljen
offline
RE: Racunanje u bazi
index-v kaže...

Imam jednostavnu bazu sa poljima: *PROIZVOD, *KOLICINA, *CIJENA, *UKUPNO. Kako da izracunam *KOLICINA x *CIJENA i da se taj rezultat upise u polje *UKUPNO?

Dakle, treba sve biti u okviru samog Accessa.

 

Pozdrav svima

 

U SQL-u bi bilo otprilike ovako:

 

Select Proizvod, Kolicina, Cijena, (Kolicina*Cijena) as Ukupno from NekaTablica

 

Freak Show Inc.
16 godina
neaktivan
offline
Racunanje u bazi
Racunanje se ne obavlja u bazi.
Sve što napišem ili sam napisao isključivo je moje osobno mišljenje, koje se ne može niti smije uzimati kao činjenica niti tvrdnja. Sve što napišem može biti neistina i pogrešna tvrdnja.
Moj PC  
0 0 hvala 0
16 godina
odjavljen
offline
RE: Racunanje u bazi
naxeem kaže...
Racunanje se ne obavlja u bazi.

 

Jooooj, pa znaš na što je čovjek mislio... Belji se

Freak Show Inc.
16 godina
neaktivan
offline
RE: Racunanje u bazi
Znam, znam, ali sam u onoj grupi koja ulaže veto na bilo što u bazi osim čistog uzimanja podataka. Makar bilo jednostavno kao ovo. To je loša praksa, loše učenje... svašta, loše.
Sve što napišem ili sam napisao isključivo je moje osobno mišljenje, koje se ne može niti smije uzimati kao činjenica niti tvrdnja. Sve što napišem može biti neistina i pogrešna tvrdnja.
16 godina
odjavljen
offline
Racunanje u bazi

Čekaj, nisi za neke izračune (on the fly) i sl?

Freak Show Inc.
 
0 0 hvala 0
16 godina
neaktivan
offline
RE: Racunanje u bazi

Ne. Povuci podatke, a poslovnu logiku drži gdje joj je mjesto. Ako trebaš računati u bazi, nešto si zeznuo u dizajnu. Minimalne (!) izračune obavljaš u View/SP... ali obrada podataka mora stati van baze. Ako ti je računanje potrebno za redukciju izlaznog sadržaja, ili imaš loše normaliziranu bazu ili dizajniranu aplikaciju; moraš znati minimum onoga što trebaš.

Naravno, da ne bude zabune, kod velikih količina gdje je potrebno unutar baze presložiti podatke, prebaciti ih negdje ili generirati nove, a izračuni su jednostavni (poput množenja cijena za novu tablicu ili view), stored procedure npr. su bolji izbor nego šetanje hrpe podataka <- samo zbog manjeg izračuna.

Ali bilo što što mora ići van baze, uvijek je bolje u aplikaciji.

Sve što napišem ili sam napisao isključivo je moje osobno mišljenje, koje se ne može niti smije uzimati kao činjenica niti tvrdnja. Sve što napišem može biti neistina i pogrešna tvrdnja.
Poruka je uređivana zadnji put sri 30.9.2009 9:34 (naxeem).
15 godina
offline
Racunanje u bazi

I ja isto imam praksu ko Naxeem... pokusavam je koristiti cisto za input/output... kalkulacije obavljam naknadno...

I'm going woo woo
 
0 0 hvala 0
16 godina
odjavljen
offline
RE: Racunanje u bazi
naxeem kaže...

Ne. Povuci podatke, a poslovnu logiku drži gdje joj je mjesto. Ako trebaš računati u bazi, nešto si zeznuo u dizajnu. Minimalne (!) izračune obavljaš u View/SP... ali obrada podataka mora stati van baze. Ako ti je računanje potrebno za redukciju izlaznog sadržaja, ili imaš loše normaliziranu bazu ili dizajniranu aplikaciju; moraš znati minimum onoga što trebaš.

Naravno, da ne bude zabune, kod velikih količina gdje je potrebno unutar baze presložiti podatke, prebaciti ih negdje ili generirati nove, a izračuni su jednostavni (poput množenja cijena za novu tablicu ili view), stored procedure npr. su bolji izbor nego šetanje hrpe podataka <- samo zbog manjeg izračuna.

Ali bilo što što mora ići van baze, uvijek je bolje u aplikaciji.

 

Gledao sam svojim očima kako je jedan naš domaći SQL MVP nakucao storu za kompletan billing jednog našeg ISP-a... Takva stora je billing obavljala unutar minute, a naša .NET aplikacija je isti posao obavljala oko 30 sati.

Freak Show Inc.
16 godina
neaktivan
offline
RE: Racunanje u bazi
U određenim situacijama gdje trebaš zbrajanje postojećih podataka, najbolje rješenje je ili View ili stora, ali bilo što kompleksnije...
Sad baš da je 30 sati? Huh? Gadno ste vi to loše napisali onda :D
Sve što napišem ili sam napisao isključivo je moje osobno mišljenje, koje se ne može niti smije uzimati kao činjenica niti tvrdnja. Sve što napišem može biti neistina i pogrešna tvrdnja.
15 godina
offline
Racunanje u bazi

Ne mogu vjerovat da je tolika razlika u performansama. Ocekivao bih duplo sporije ali toliko...

I'm going woo woo
 
0 0 hvala 0
16 godina
odjavljen
offline
RE: Racunanje u bazi
naxeem kaže...
U određenim situacijama gdje trebaš zbrajanje postojećih podataka, najbolje rješenje je ili View ili stora, ali bilo što kompleksnije...
Sad baš da je 30 sati? Huh? Gadno ste vi to loše napisali onda :D

 

Nekada i duže od 2 dana... Pazi, radi se o brdu raznoraznih provjera poslovnih pravila (popusti, odobrenja, storna, akcije, dugovi, uplate, stari računi...). Mislim da je po pitanju optimizacije bilo jako malo mjesta za poboljšanje (u aplikaciji). Sama stora je bila poveća. Mislim da je oko 60-70 kilobajta bila. Nisam vjerovao svojim očima kad sam vidio da se par stotina tisuća računa može napraviti u trenu. Ali onda sam zapravo uvidio da se ipak dosta toga (i to na izuzetno efikasan način) može obaviti na serveru - iako sam do onda bio istog mišljenja kao ti sada.

Freak Show Inc.
16 godina
odjavljen
offline
RE: Racunanje u bazi
tnakir kaže...

Ne mogu vjerovat da je tolika razlika u performansama. Ocekivao bih duplo sporije ali toliko...

Kad smo prekucali stari softver na .NET i napravili procedure za prebacivanje svih podataka iz stare baze u novu ostali smo zapanjeni kako to zapravo sporo ide. Prebacivanje je trajalo oko 5 dana. Oni (da ne spominjem ime firme iako možda znate koji su "oni") su kroz storu isti posao napravili unutar sat vremena. Ali, kakva je to stora bila...

Freak Show Inc.
15 godina
offline
Racunanje u bazi

Mislim ima logike da ce ici brze jer podaci ne moraju izlaziti vani, ne koriste se nekakve klase koja inace nisu potrebne i slicno... ali nije mi jasno da je tolika razlika u performansama. Susjed mi je u Jadranskom Osig. na bazama... bas cu se malo kod njega raspitat kako oni to tamo rade...

I'm going woo woo
 
0 0 hvala 0
16 godina
neaktivan
offline
Racunanje u bazi
Ma nije mi ta razlika jasna. Tu nešto gadno nije štimalo s layerom za pristup podacima. Jeste provjerili gdje je bottleneck? U računanju samom, nema teoretske šanse da C#/.NET nije drastično brži. Čini mi se da je vama jednostavno baratanje bazom bilo sporo. Neko govno od ORM-a?
Sve što napišem ili sam napisao isključivo je moje osobno mišljenje, koje se ne može niti smije uzimati kao činjenica niti tvrdnja. Sve što napišem može biti neistina i pogrešna tvrdnja.
Moj PC  
0 0 hvala 0
16 godina
odjavljen
offline
RE: Racunanje u bazi
naxeem kaže...
Ma nije mi ta razlika jasna. Tu nešto gadno nije štimalo s layerom za pristup podacima. Jeste provjerili gdje je bottleneck? U računanju samom, nema teoretske šanse da C#/.NET nije drastično brži. Čini mi se da je vama jednostavno baratanje bazom bilo sporo. Neko govno od ORM-a?

 

Ma, bilo je puno čimbenika koji su utjecali na to. Milijun CRUD operacija (milijun metaforički), loš menadžment objekata u kodu (aplikacija je žderala masu memorije pa se rušila i svašta)...

Ali da je optimizirano do besvijesti, svejedno je najbrži pristup ipak kad podaci ne idu uopće sa servera.

Freak Show Inc.
16 godina
neaktivan
offline
RE: Racunanje u bazi

Ukratko - loš kod.
Inače, baš sam u jednoj raspravi, na jednom socijalnom mediju imao priliku raspravljati koliko je važna kultura kodiranja, arhitektura softvera i kvaliteta samog koda u odnosu na brzinu izrade i 1-goal situacije gdje je taj jedan cilj 'delivery'. Tzv. duct-tape programeri i programiranje su imho štetni, jer se pristupom, kakav je opisan u jednom članku, ignorira sve dobre prakse, pravila dizajniranja softverske arhitekture i patterna razvoja i pisanja koda. Agilni pristup često pogoduje lošem programiranju.
Zašto ovo govorim? - Jer sam pod dojmom da ste i vi taj softver pisali po duct-tape principu "samo da bude gotov" u nekom kratkom roku i da dobrim dijelom iz tog kupusa proizlazi ta enormna razlika u izvođenju i stanje aplikacije koje si opisao.

Sigurno je da je aplikativna obrada sporija zbog transporta, ali toliko? Nemoguće.

Sve što napišem ili sam napisao isključivo je moje osobno mišljenje, koje se ne može niti smije uzimati kao činjenica niti tvrdnja. Sve što napišem može biti neistina i pogrešna tvrdnja.
Poruka je uređivana zadnji put sri 30.9.2009 14:00 (naxeem).
16 godina
odjavljen
offline
RE: Racunanje u bazi
naxeem kaže...

Ukratko - loš kod.
Inače, baš sam u jednoj raspravi, na jednom socijalnom mediju imao priliku raspravljati koliko je važna kultura kodiranja, arhitektura softvera i kvaliteta samog koda u odnosu na brzinu izrade i 1-goal situacije gdje je taj jedan cilj 'delivery'. Tzv. duct-tape programeri i programiranje su imho štetni, jer se pristupom, kakav je opisan u jednom članku, ignorira sve dobre prakse, pravila dizajniranja softverske arhitekture i patterna razvoja i pisanja koda. Agilni pristup često pogoduje lošem programiranju.
Zašto ovo govorim? - Jer sam pod dojmom da ste i vi taj softver pisali po duct-tape principu "samo da bude gotov" u nekom kratkom roku i da dobrim dijelom iz tog kupusa proizlazi ta enormna razlika u izvođenju i stanje aplikacije koje si opisao.

Sigurno je da je aplikativna obrada sporija zbog transporta, ali toliko? Nemoguće.

 

Ta aplikacija je u produkciju puštena u alfa verziji. Da, alfa. Imala je cca 30% potrebne funkcionalnosti kad je uvedena u operativnu upotrebu. Billing engine je bio golema klasa koja je radila sve i svašta ali mislim da je glavni problem bio upravo u nepotrebnim CRUD operacijama. Posebno u gomili (stotine tisuća) select i update radnji nad tablicama koje su debelo premašile 10.000.000 recorda...

Freak Show Inc.
1
Nova poruka
E-mail:
Lozinka:
 
vrh stranice