Avatar billede showsource Seniormester
19. februar 2007 - 02:01 Der er 5 kommentarer og
1 løsning

Lav udregning ved udtræk eller gem udregning ved INSERT

Hvis man har tal og datoer som skal gemmes i DB, hvad er så bedst, at lave udregninger ved udtræk, ( php ), eller gemme udregninger i DB?

DB plads er ikke noget problem.
Avatar billede arne_v Ekspert
19. februar 2007 - 02:10 #1
Det er det som hedder et meget godt spørgsmål ...

:-)

hvis jeg skulle komme med et bud:

1)  nøjes med relativt simple beregninger typisk kun enkelte funktionakald
    i SQL - undgå CASE WHEN og stored procedures med løkker

2)  det vil næsten altid være hurtigst at transformere udtryk i select listen
    i applikationen fremfor i SQL

3)  hvis en beregning i et WHERE udtryk kan reducere antal rækker der skal hentes
    så kan det give en performancemæssig fordel fremfor at hente flere række
    og smide væk i applikationen

4)  husk også at beregninger i SQL sjældent er portable mellem databaser og kan
    giver store problemer den dag der skal skiftes fra MySQL til MS SQLServer eller
    PostgreSQL
Avatar billede showsource Seniormester
19. februar 2007 - 11:06 #2
Lidt mere info vil nok være på plads:
Vil lave en statistik side for taxa chauffører.
Ved hver vagt, udfyldes en side i en "trafikbog"

Det som skal gemmes i DB er

Starttid
sluttid
pause i minutter

hele kroner indkørt
hele antal kørte km
hele antal kørte km med kunder

antal ture ialt
taxa'ens bevillings-nr
procent man tjener af det indkørte, f.eks. 49.85


Det jeg så tænker på, er at flg. skal vises ved hver vagt:

uge-nr. og ugedag
arbejdstid ialt for den enkelte vagt
reel arbejdstid ialt ( arbejdstid minus pause )
indkørt pr. time
reel indkørt pr. time
indkørt pr. kørt kilomet
belægningsprocent ( kørte km. => kørte km. med kunde )
snit indkørt pr. tur

Kan det betale sig at gemme ovenstående ved insert?
Eller lave beregning ved udtræk?


Som rosinen i pølseenden, laves en samlet statistik:

samlet arbejdstid og reel arbejdstid for en måned/lønperiode ad gangen
løn optjent ialt for en måned/lønperiode ad gangen
snit løn optjent pr. vagt
snit løn optjent pr. time
snit indkørt pr. km.
snit belægningsprocent


Derudover skal jeg ha'
selskab og  vognejer ind i statistikken
Avatar billede showsource Seniormester
19. februar 2007 - 11:07 #3
uge-nr. og ugedag gi'r jo sig selv med datoformatering
Avatar billede showsource Seniormester
20. februar 2007 - 01:44 #4
Du må gerne smide et svar arne.
Vælger at gemme så lidt som muligt i DB, og lave udregninger ved visning.
Det er jo max. 31 dage ad gangen. ( so far )
Avatar billede showsource Seniormester
28. februar 2007 - 11:12 #5
Et svar arne?
Avatar billede arne_v Ekspert
28. februar 2007 - 15:54 #6
ok
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester