Optimering af beregninger i auto-genereret query
HejsaDetter er et lidt langhaaret problem som begynder at faa maerkbare konsekvenser paa et system som allerede er oppe at koere.
Jeg har distribuerede frontends (Access 97) som kan hente raa data fra en backend paa en server. Disse raa-data (counts) skal konverteres til enten Antal/Volume eller Antal per areal.
Konverteringen afhaenger af hvilket net er brugt til at tage proeven med (Sampler). Hvert net har to parametre som har effekt paa konverteringen til areal eller volume (Diameter og Efficieny).
Parametre for Sampler ligger i tabellen Samplers.
Jeg skal saa konvertere alle Counts ved at lave en beregning paa tabellen Zoo1 som indeholder en masse felter med counts samt et felt for "sampler" for hver post.
Indtil videre har jeg haft Public functions som hed AreaCalc og VolumeCalc der laver DLookup paa samplers-tabellen og henter diameter og efficiency paa denne maade. Den function kaldes saa fra en SQL-saetning:
SELECT [Dato], AreaCalc([Felt1]) AS Feltnavn1, AreaCalc([Felt2]) AS Feltnavn2, ......
Der er omkring 120 felter der indsaettes i paa denne maade (SQL-saetningen genereres gennem et script).
Men jo flere posts der kommer til i tabellen jo langsommere koerer det selvf. Problemet er at metoden nu er saa langsom at det ikke laengere er brugbart.
Saa mit spoergsmaal er:
- er det specielt langsomt at indarbejde functions i en SQL seatning?
- er der en metode hvormed jeg kan optimere koden saa jeg kan noejes med at holde raa data i backenden eller bliver det noedvendigt at lave f.eks en ugentlig beregning hvor data konverteres og indsaettes i en separat tabel.
