Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtp (Exim 4.80) (envelope-from ) id 1WQs5f-00057P-54 for pgsql-performance@arkaria.postgresql.org; Fri, 21 Mar 2014 05:33:59 +0000 Received: from localhost ([127.0.0.1] helo=postgresql.org) by malur.postgresql.org with smtp (Exim 4.80) (envelope-from ) id 1WQs5e-00068A-DX for pgsql-performance@arkaria.postgresql.org; Fri, 21 Mar 2014 05:33:58 +0000 Received: from makus.postgresql.org ([2001:4800:7903:4::125]) by malur.postgresql.org with esmtp (Exim 4.80) (envelope-from ) id 1WQs5c-000681-7u for pgsql-performance@postgresql.org; Fri, 21 Mar 2014 05:33:56 +0000 Received: from dedi.ckr-solutions.com ([195.154.211.35]) by makus.postgresql.org with esmtp (Exim 4.80) (envelope-from ) id 1WQs5Y-0004gL-Mu for pgsql-performance@postgresql.org; Fri, 21 Mar 2014 05:33:55 +0000 Received: from localhost (localhost [127.0.0.1]) by dedi.ckr-solutions.com (Postfix) with ESMTP id 79856262F87 for ; Fri, 21 Mar 2014 06:33:50 +0100 (CET) X-Virus-Scanned: Debian amavisd-new at ckr-solutions.com Received: from dedi.ckr-solutions.com ([127.0.0.1]) by localhost (dedi.ckr-solutions.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id EVn9gacRd4P2 for ; Fri, 21 Mar 2014 06:33:48 +0100 (CET) Received: from [IPv6:2a01:e35:2f3a:2500:d416:2ea:cb77:7f09] (unknown [IPv6:2a01:e35:2f3a:2500:d416:2ea:cb77:7f09]) (using TLSv1 with cipher ECDHE-RSA-AES128-SHA (128/128 bits)) (No client certificate requested) (Authenticated sender: jmreymond@ckr-solutions.com) by dedi.ckr-solutions.com (Postfix) with ESMTPSA id 5F5322628D3 for ; Fri, 21 Mar 2014 06:33:48 +0100 (CET) Message-ID: <532BCF3B.3090202@free.fr> Date: Fri, 21 Mar 2014 06:33:47 +0100 From: Jean-Max Reymond User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.3.0 MIME-Version: 1.0 To: pgsql-performance@postgresql.org Subject: Re: Performance of UNION vs IN References: <532B1E05.70409@free.fr> <532B21D6.2030309@gmx.net> In-Reply-To: <532B21D6.2030309@gmx.net> Content-Type: text/plain; charset=ISO-8859-15; format=flowed Content-Transfer-Encoding: 8bit X-Pg-Spam-Score: 0.0 (/) List-Archive: List-Help: List-ID: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: X-Mailing-List: pgsql-performance Precedence: bulk Sender: pgsql-performance-owner@postgresql.org Le 20/03/2014 18:13, Torsten Förtsch a écrit : > On 20/03/14 17:57, Jean-Max Reymond wrote: >> I have a very complex view zinfoexp and running the view as: >> SELECT * FROM zinfoexp WHERE idmembre in (1,84) >> take 2700 ms >> >> So, I try another syntax: >> SELECT * FROM zinfoexp WHERE idmembre = 1 >> union >> SELECT * FROM zinfoexp WHERE idmembre = 84 >> >> and for me, two calls to my view takes a lot of time (may be x2) and it >> takes 134 ms ! > > try > > SELECT * FROM zinfoexp WHERE idmembre=1 OR idmembre=84 > > This will probably be even faster. > > Also, the 2 statements of your's are not semantically equal. UNION > implies DISTINCT, see: > > select * from (values (1), (1), (2)) t(i) UNION select 19; > i > ---- > 19 > 1 > 2 > (3 rows) > > What you want is UNION ALL: > > select * from (values (1), (1), (2)) t(i) UNION ALL select 19; > i > ---- > 1 > 1 > 2 > 19 > (4 rows) > > > Torsten > same numbers with DISTINCT and UNION ALL (construction of VIEW does an implicit DISTINCT). -- Jean-Max Reymond Éruption de l'Etna: http://jmreymond.free.fr/Etna2002 -- Sent via pgsql-performance mailing list (pgsql-performance@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-performance