Re: Tuning
Posted in 1996
Topics: Performance & Tuning
>Jaroslaw Pyszkiewicz wrote: >> >> Does anybody have idea how to speed up such a querry. >> >> SELECT SUM(przydzial.godziny) > INTO arr_przyd_sc[counter].suma_rok >> FROM przydzial >> WHERE YEAR(przydzial.miesiac)=YEAR(przyd_bufor.miesiac) >> AND przydzial.zad_id = przyd_bufor.zad_id >> >> This is description of table: >> "przydzial" : zad_id INTEGER, >> prac_id INTEGER, >> miesiac DATETIME YEAR TO MONTH, >> godziny INTEGER > Suposing that przyd_bufor.miesiac is a variable in your code, you could setup two DATETIME variables, (Check the proper syntax, I haven't used DATETIMES for a while now) d1= DATETIME YEAR TO MONTH (YEAR(przyd_bufor.miesiac),1) # January of this year d2= DATETIME YEAR TO MONTH (YEAR(przyd_bufor.miesiac),12) # December of this year And rewrite the query as: SELECT SUM(przydzial.godziny) INTO arr_przyd_sc[counter].suma_rok FROM przydzial WHERE przydzial.miesiac BETWEEN d1 AND d2 AND przydzial.zad_id = przyd_bufor.zad_id I assume you have an Index created on zad_id (Primary key?); it would probably speed up significantly your query if an index was created on miesiac and zad_id. Let us know how it went. Best regards and Good luck! Lawrence.