From: | "Contact AR-SD(dot)NET" <contact(at)ar-sd(dot)net> |
---|---|
To: | "Tom Lane" <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
Cc: | <pgsql-performance(at)postgresql(dot)org> |
Subject: | Re: Index not used in query. Why? |
Date: | 2004-10-19 17:49:45 |
Message-ID: | 0c4501c4b604$06f15460$0b00a8c0@forge |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-performance |
Is there a solution to make it faster?
At the end I need only in the query the id_status =4 and 6, but if I write
in the sql query (where condition) where id_status in (4,6), the explain
says the same(the slow version).
For example:
SELECT count(o.id) FROM orders o
INNER JOIN report r ON o.id=r.id_order
INNER JOIN status s ON o.id_status=s.id
INNER JOIN contact c ON o.id_ag=c.id
INNER JOIN endkunde e ON
o.id_endkunde=e.id
INNER JOIN zufriden z ON
r.id_zufriden=z.id
INNER JOIN plannung v ON
v.id=o.id_plannung
INNER JOIN mpsworker w ON
v.id_worker=w.id
INNER JOIN person p ON p.id = w.id_person
WHERE o.id_status in (4,6);
The result for this query is also without index searches.
I really have to make this query a little more faster. Suggestions?
Regards,
Andy.
----- Original Message -----
From: "Tom Lane" <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: "Andrei Bintintan" <klodoma(at)ar-sd(dot)net>
Cc: <pgsql-performance(at)postgresql(dot)org>
Sent: Tuesday, October 19, 2004 7:52 PM
Subject: Re: [PERFORM] Index not used in query. Why?
> "Andrei Bintintan" <klodoma(at)ar-sd(dot)net> writes:
> > Hi to all! I have the following query. The execution time is very big,
it
> > doesn't use the indexes and I don't understand why...
>
> Indexes are not necessarily the best way to do a large join.
>
> > If I use the following query the indexes are used:
>
> The key reason this wins seems to be that the id_status = 4 condition
> is far more selective than id_status > 3 (the estimates are 52 and 36967
> rows respectively ... is that accurate?) which means that the second
> query is inherently about 1/700th as much work. This, and not the use
> of indexes, is the fundamental reason why it's faster.
>
> regards, tom lane
>
> ---------------------------(end of broadcast)---------------------------
> TIP 4: Don't 'kill -9' the postmaster
>
From | Date | Subject | |
---|---|---|---|
Next Message | Max Baker | 2004-10-19 18:12:45 | Re: Vacuum takes a really long time, vacuum full required |
Previous Message | Tom Lane | 2004-10-19 16:52:49 | Re: Index not used in query. Why? |