X-Original-To: pgsql-performance-postgresql.org@localhost.postgresql.org Received: from localhost (mx1.hub.org [200.46.208.251]) by postgresql.org (Postfix) with ESMTP id E69249FA5F0 for ; Tue, 30 May 2006 19:37:01 -0300 (ADT) Received: from postgresql.org ([200.46.204.71]) by localhost (mx1.hub.org [200.46.208.251]) (amavisd-new, port 10024) with ESMTP id 26095-05 for ; Tue, 30 May 2006 19:36:57 -0300 (ADT) X-Greylist: from auto-whitelisted by SQLgrey- Received: from peufeu.com (boutiquenumerique.com [82.67.9.10]) by postgresql.org (Postfix) with ESMTP id 0CBEE9FA5E1 for ; Tue, 30 May 2006 19:36:56 -0300 (ADT) Received: (qmail 16407 invoked from network); 31 May 2006 00:37:04 +0200 Received: from boutiquenumerique.com (HELO apollo13) (82.67.9.10) by boutiquenumerique.com with SMTP; 31 May 2006 00:37:04 +0200 To: kynn@panix.com, pgsql-performance@postgresql.org Subject: Re: Optimizing a huge_table/tiny_table join References: <200605241742.k4OHgkg06460@panix3.panix.com> Message-ID: Date: Wed, 31 May 2006 00:37:03 +0200 From: PFC Content-Type: text/plain; format=flowed; delsp=yes; charset=utf-8 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit In-Reply-To: <200605241742.k4OHgkg06460@panix3.panix.com> User-Agent: Opera M2/8.54 (Linux, build 1745) X-Virus-Scanned: Maia Mailguard 1.0.1 X-Archive-Number: 200605/554 X-Sequence-Number: 19341 > SELECT * FROM huge_table h, tiny_table t WHERE UPPER( h.id ) = > UPPER( t.id ) What about : SELECT * FROM huge_table h WHERE UPPER(id) IN (SELECT upper(id) FROM tiny_table t) Or, try opening a cursor on your original query and using FETCH. It might result in a different plan. Or lower random_page_cost.