X-Original-To: pgsql-performance-postgresql.org@localhost.postgresql.org Received: from localhost (unknown [200.46.204.144]) by svr1.postgresql.org (Postfix) with ESMTP id 04A1552A11 for ; Wed, 20 Jul 2005 12:25:16 -0300 (ADT) Received: from svr1.postgresql.org ([200.46.204.71]) by localhost (av.hub.org [200.46.204.144]) (amavisd-new, port 10024) with ESMTP id 99736-01 for ; Wed, 20 Jul 2005 15:25:13 +0000 (GMT) Received: from mail2.aeccom.com (port-212-202-101-158.static.qsc.de [212.202.101.158]) by svr1.postgresql.org (Postfix) with ESMTP id 642D052A0C for ; Wed, 20 Jul 2005 12:25:11 -0300 (ADT) Received: from [192.168.2.12] (port-83-236-156-26.static.qsc.de [83.236.156.26]) by mail2.aeccom.com (Postfix) with ESMTP id ED8ED69 for ; Wed, 20 Jul 2005 17:25:09 +0200 (CEST) Message-ID: <42DE6CD5.8070100@aeccom.com> Date: Wed, 20 Jul 2005 17:25:09 +0200 From: =?ISO-8859-1?Q?Dirk_Lutzeb=E4ck?= Organization: AEC/communications GmbH User-Agent: Mozilla Thunderbird 1.0.6 (X11/20050716) X-Accept-Language: en-us, en MIME-Version: 1.0 To: pgsql-performance@postgresql.org Subject: Optimizer seems to be way off, why? Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Virus-Scanned: by amavisd-new at hub.org X-Spam-Status: No, hits=0.065 tagged_above=0 required=5 tests=AWL, FORGED_RCVD_HELO X-Spam-Level: X-Archive-Number: 200507/334 X-Sequence-Number: 13575 Hi, I do not under stand the following explain output (pgsql 8.0.3): explain analyze select b.e from b, d where b.r=516081780 and b.c=513652057 and b.e=d.e; QUERY PLAN ---------------------------------------------------------------------------------------------------------------- Nested Loop (cost=0.00..1220.09 rows=1 width=4) (actual time=0.213..2926.845 rows=324503 loops=1) -> Index Scan using b_index on b (cost=0.00..1199.12 rows=1 width=4) (actual time=0.104..17.418 rows=3293 loops=1) Index Cond: (r = 516081780::oid) Filter: (c = 513652057::oid) -> Index Scan using d_e_index on d (cost=0.00..19.22 rows=140 width=4) (actual time=0.009..0.380 rows=99 loops=3293) Index Cond: ("outer".e = d.e) Total runtime: 3638.783 ms (7 rows) Why is the rows estimate for b_index and the nested loop 1? It is actually 3293 and 324503. I did VACUUM ANALYZE before and I also increased the STATISTICS TARGET on b.e to 500. No change. Here is the size of the tables: select count(oid) from b; 3532161 select count(oid) from b where r=516081780 and c=513652057; 3293 select count(oid) from d; 117270 Regards, Dirk