Received: from localhost (unknown [200.46.204.183]) by developer.postgresql.org (Postfix) with ESMTP id 3C8A52E0056 for ; Wed, 23 Apr 2008 05:57:21 -0300 (ADT) Received: from developer.postgresql.org ([200.46.204.71]) by localhost (mx1.hub.org [200.46.204.183]) (amavisd-maia, port 10024) with ESMTP id 22301-03 for ; Wed, 23 Apr 2008 05:57:13 -0300 (ADT) X-Greylist: from auto-whitelisted by SQLgrey-1.7.5 Received: from moutng.kundenserver.de (moutng.kundenserver.de [212.227.126.187]) by developer.postgresql.org (Postfix) with ESMTP id 1DE222E004C for ; Wed, 23 Apr 2008 05:57:13 -0300 (ADT) Received: from webserv.wug.de ([194.25.154.138]) by mrelayeu.kundenserver.de (node=mrelayeu7) with ESMTP (Nemesis) id 0ML2xA-1Joamn1G7S-0003XL; Wed, 23 Apr 2008 10:57:08 +0200 Received: from kretschmer by webserv.wug.de with local (Exim 3.36 #1) id 1Joamm-00049G-00 for pgsql-performance@postgresql.org; Wed, 23 Apr 2008 10:57:04 +0200 Date: Wed, 23 Apr 2008 10:57:04 +0200 From: "A. Kretschmer" To: pgsql-performance@postgresql.org Subject: Re: mysterious difference in speed when combining two queries with OR Message-ID: <20080423085704.GG8401@a-kretschmer.de> References: <20080423072303.GF11886@amin> <20080423075810.GB8401@a-kretschmer.de> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20080423075810.GB8401@a-kretschmer.de> X-OS: Debian/GNU Linux - weil ich es mir Wert bin! User-Agent: Mutt/1.5.9i X-Provags-ID: V01U2FsdGVkX1/FAuyM9q2QcYa3A/uwA6Y4TNf3EYu+0ax8FwK LSLnw0fPCmGrHfl2UsbmIg0tgG3ox1T6aGgRBPgFdSpLr1htID vux1F6Pa+QmQctpi3yejnBWYJpLhLCF X-Virus-Scanned: Maia Mailguard 1.0.1 X-Archive-Number: 200804/344 X-Sequence-Number: 29837 am Wed, dem 23.04.2008, um 9:58:10 +0200 mailte A. Kretschmer folgendes: > > Query A (two queries) > > > > select distinct moment.mid from moment,timecard where parent = 45 and (pid=17 and timecard.mid = moment.mid) order by moment.mid; > > select distinct moment.mid from moment,timecard where parent = 45 and (pbar = 0) order by moment.mid; > > > > Query B (combining the two with OR) > > > > select distinct moment.mid from moment,timecard where parent = 45 and ((pid=17 and timecard.mid = moment.mid) or (pbar = 0)) order by moment.mid; Thanks to depesz on #postgresql (irc-channel): Query A, the second query: there are no join between the 2 tables. Mistake? Andreas -- Andreas Kretschmer Kontakt: Heynitz: 035242/47150, D1: 0160/7141639 (mehr: -> Header) GnuPG-ID: 0x3FFF606C, privat 0x7F4584DA http://wwwkeys.de.pgp.net