On Mon, 10 Sep 2001, Tille, Andreas wrote:
> On Mon, 10 Sep 2001 Herbert.Liechti@thinx.ch wrote:
>
> > Use explain. Explain tells you the query plan of the optimizer.
> >
> > explain SELECT .....;
> Thanks I just found the thread "Index usage question" and tried to make
> some profit from it:
>
> explain SELECT Hauptdaten_Fall.MeldeKategorie,
> Count(Hauptdaten_Fall.ID) AS Anz FROM Hauptdaten_Fall WHERE
> (((Hauptdaten_Fall.IstAktuell)=20)) GROUP BY
> Hauptdaten_Fall.MeldeKategorie ORDER BY
> Hauptdaten_Fall.MeldeKategorie;
>
> Aggregate (cost=35267.33..36154.62 rows=17746 width=16)
> -> Group (cost=35267.33..35710.98 rows=177458 width=16)
> -> Sort (cost=35267.33..35267.33 rows=177458 width=16)
> -> Seq Scan on hauptdaten_fall (cost=0.00..15024.12 rows=177458 width=16)
>
> I have nearly no experience with query optimizing but the gread difference
> in speed tells me that something is wrong here. There were some hints in
> the "Index usage question" thread about some fields which might be interpreted
> as strings. Could this be a reason and how to check this?
What's the schema for the table? How many rows are in the table? How many
rows actually have IstAktuell=20 (is 177458 a reasonable estimate?). If
not, is there a common, non-NULL value that is much more common than other
values?