X-Original-To: pgsql-performance-postgresql.org@postgresql.org Received: from localhost (wm.hub.org [200.46.204.128]) by postgresql.org (Postfix) with ESMTP id C2BEC9FB220 for ; Wed, 9 Aug 2006 11:23:08 -0300 (ADT) Received: from postgresql.org ([200.46.204.71]) by localhost (mx1.hub.org [200.46.204.128]) (amavisd-new, port 10024) with ESMTP id 73835-09 for ; Wed, 9 Aug 2006 14:23:04 +0000 (UTC) X-Greylist: from auto-whitelisted by SQLgrey- Received: from mail.avior.ca (mail.avior.ca [209.47.34.36]) by postgresql.org (Postfix) with SMTP id 518E39FB1FE for ; Wed, 9 Aug 2006 11:23:04 -0300 (ADT) Received: (qmail 25151 invoked by uid 0); 9 Aug 2006 14:23:02 -0000 Received: from pbeliveau@avior.ca by mail by uid 510 with qmail-scanner-1.16 (clamscan: 0.60. Clear:. Processed in 0.872632 secs); 09 Aug 2006 14:23:02 -0000 Received: from mis-07.avior.ca (HELO ?10.1.1.7?) (10.1.1.7) by mail.avior.ca with SMTP; 9 Aug 2006 14:23:01 -0000 Message-ID: <44D9EFC5.4070708@avior.ca> Date: Wed, 09 Aug 2006 10:23:01 -0400 From: Patrice Beliveau User-Agent: Thunderbird 1.5.0.4 (X11/20060614) MIME-Version: 1.0 To: pgsql-performance@postgresql.org Subject: Re: Optimizing queries References: <44D8CE92.1080407@avior.ca> <1155062399.20252.50.camel@state.g2switchworks.com> <44D8F0B8.2030804@avior.ca> <13030.1155069749@sss.pgh.pa.us> <44D9CF6E.9030900@avior.ca> <44D9D313.5060804@rentalia.com> In-Reply-To: <44D9D313.5060804@rentalia.com> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Virus-Scanned: Maia Mailguard 1.0.1 X-Spam-Status: No, hits=0 tagged_above=0 required=5 tests= X-Spam-Level: X-Archive-Number: 200608/146 X-Sequence-Number: 20331 I've create a view, same query plan (some number vary a bit, but nothing significant) and same result, closed sales_order are processed Ruben Rubio wrote: > -----BEGIN PGP SIGNED MESSAGE----- > Hash: SHA1 > > If subquerys are not working I think you should try to create a view > with the subquery. > > Maybe it will work. > > Patrice Beliveau wrote: > >> Tom Lane wrote: >> >>> Patrice Beliveau writes: >>> >>> >>>>>> SELECT * FROM TABLE >>>>>> WHERE TABLE.COLUMN1=something >>>>>> AND TABLE.COLUMN2=somethingelse >>>>>> AND function(TABLE.COLUMN3,TABLE.COLUMN4) > 0; >>>>>> >>>>>> >>> >>> >>>> I find out that the function process every row even if the row should >>>> be rejected as per the first or the second condition. >>>> ... I'm using version 8.1.3 >>>> >>>> >>> PG 8.1 will not reorder WHERE clauses for a single table unless it has >>> some specific reason to do so (and AFAICT no version back to 7.0 or so >>> has done so either...) So there's something you are not telling us that >>> is relevant. Let's see the exact table schema (psql \d output is good), >>> the exact query, and EXPLAIN output for that query. >>> >>> regards, tom lane >>> >>> ---------------------------(end of broadcast)--------------------------- >>> TIP 9: In versions below 8.0, the planner will ignore your desire to >>> choose an index scan if your joining column's datatypes do not >>> match >>> >>> >>> >>> >> Hi, >> >> here is my query, and the query plan that result >> >> explain select * from ( >> select * from sales_order_delivery >> where sales_order_id in ( >> select sales_order_id from sales_order >> where closed=false >> ) >> ) as a where outstandingorder(sales_order_id, sales_order_item, >> date_due) > 0; >> >> >> QUERY PLAN >> ---------------------------------------------------------------------------------------------------------------------- >> >> Hash IN Join (cost=498.89..8348.38 rows=34612 width=262) >> Hash Cond: (("outer".sales_order_id)::text = >> ("inner".sales_order_id)::text) >> -> Seq Scan on sales_order_delivery (cost=0.00..6465.03 rows=69223 >> width=262) >> Filter: (outstandingorder((sales_order_id)::text, >> (sales_order_item)::text, date_due) > 0::double precision) >> -> Hash (cost=484.90..484.90 rows=5595 width=32) >> -> Seq Scan on sales_order (cost=0.00..484.90 rows=5595 width=32) >> Filter: (NOT closed) >> (7 rows) >> >> >> ---------------------------(end of broadcast)--------------------------- >> TIP 3: Have you checked our extensive FAQ? >> >> http://www.postgresql.org/docs/faq >> >> >> > > -----BEGIN PGP SIGNATURE----- > Version: GnuPG v1.4.2.2 (GNU/Linux) > Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org > > iD8DBQFE2dMTIo1XmbAXRboRAhbIAJwJGZ+ITP0gl38A3qROrzIeNbTtUwCcDOIW > eZ9NJqjL+58gyMfO95jwZSw= > =4Zxj > -----END PGP SIGNATURE----- > > >