I have W2K server, relatively small database containing all required indexes and need to sum only few records. My query takes 26 seconds to run. How to fix this ? Andrus. explain analyze select sum(taitmata) as ukogus from rid join dok using (dokumnr) where toode='NE TR' and doktyyp='U' returns "Aggregate (cost=47581.25..47581.26 rows=1 width=8) (actual time=26462.178..26462.178 rows=1 loops=1)" " -> Hash Join (cost=1175.91..47579.54 rows=684 width=8) (actual time=26462.002..26462.108 rows=7 loops=1)" " Hash Cond: (rid.dokumnr = dok.dokumnr)" " -> Bitmap Heap Scan on rid (cost=673.35..46946.99 rows=19703 width=12) (actual time=19.864..26430.100 rows=21335 loops=1)" " Recheck Cond: (toode = 'NE TR'::bpchar)" " -> Bitmap Index Scan on rid_toode_idx (cost=0.00..668.42 rows=19703 width=0) (actual time=12.402..12.402 rows=21335 loops=1)" " Index Cond: (toode = 'NE TR'::bpchar)" " -> Hash (cost=458.47..458.47 rows=3528 width=4) (actual time=0.141..0.141 rows=6 loops=1)" " -> Index Scan using dok_tasudok_unique_idx on dok (cost=0.00..458.47 rows=3528 width=4) (actual time=0.057..0.125 rows=6 loops=1)" " Index Cond: (doktyyp = 'U'::bpchar)" "Total runtime: 26462.551 ms" using "PostgreSQL 8.2.4 on i686-pc-mingw32, compiled by GCC gcc.exe (GCC) 3.4.2 (mingw-special)" ---------------------------(end of broadcast)--------------------------- TIP 6: explain analyze is your friend