Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ai2Kr-0006Im-S2 for pgsql-sql@arkaria.postgresql.org; Mon, 21 Mar 2016 16:05:41 +0000 Received: from localhost ([127.0.0.1] helo=postgresql.org) by malur.postgresql.org with smtp (Exim 4.84_2) (envelope-from ) id 1ai2Kr-0002Yf-9l for pgsql-sql@arkaria.postgresql.org; Mon, 21 Mar 2016 16:05:41 +0000 Received: from makus.postgresql.org ([2001:4800:1501:1::229]) by malur.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1ai2Js-0001Ni-Hj for pgsql-sql@postgresql.org; Mon, 21 Mar 2016 16:04:40 +0000 Received: from out1-smtp.messagingengine.com ([66.111.4.25]) by makus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1ai2Jk-0000KH-QI for pgsql-sql@postgresql.org; Mon, 21 Mar 2016 16:04:39 +0000 Received: from compute4.internal (compute4.nyi.internal [10.202.2.44]) by mailout.nyi.internal (Postfix) with ESMTP id 41AD020B06 for ; Mon, 21 Mar 2016 12:04:32 -0400 (EDT) Received: from frontend1 ([10.202.2.160]) by compute4.internal (MEProxy); Mon, 21 Mar 2016 12:04:32 -0400 DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; d=aklaver.com; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to:x-sasl-enc :x-sasl-enc; s=mesmtp; bh=6Z+akXH7b+esPkz17iVcEToRUCc=; b=RxNV4E Uk+oFrvBg/4pUhYULxB9BBOGQO+k2B9SEoQv1Nl/j9LjZlREiEDh+zOOr69BALp1 1nqakCOYKOjP2mL8uRdeqPy3wAu/vMM7kC4RuKZkK/41F5L0jBY8UVhq6Cq5DRbN 03zSSNuoEG9DtqnJN8jYG4wio9+LVrj6u7UYg= DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-transfer-encoding:content-type :date:from:in-reply-to:message-id:mime-version:references :subject:to:x-sasl-enc:x-sasl-enc; s=smtpout; bh=6Z+akXH7b+esPkz 17iVcEToRUCc=; b=hQrdqy5YdVDFjs4NBJkM39vRuJ3BvVJoW1uAKXxdia7g2lG 3SJ7xRs2MBWkBOMYFszpfgY1beil7rL0VxLCRXp5i+sh9cGhnPAePSlWWQ5gK7nr qiddvdUd+OmbcsZxDnwaNIVG5f8eZAomGxxrm6fmglqnKrHnG29JzWhHUgEo= X-Sasl-enc: +scujqvFpy8gc//buy/TGJeVODU5UR9vQcRIgMVfHxuy 1458576271 Received: from [192.168.1.2] (174-24-160-10.tukw.qwest.net [174.24.160.10]) by mail.messagingengine.com (Postfix) with ESMTPA id BB35CC00020; Mon, 21 Mar 2016 12:04:31 -0400 (EDT) Subject: Re: plan not correct? To: Bert References: <56F0079D.9060108@aklaver.com> <56F00CCF.9070702@aklaver.com> Cc: "PostgreSQL (SQL)" From: Adrian Klaver Message-ID: <56F01B8F.5030506@aklaver.com> Date: Mon, 21 Mar 2016 09:04:31 -0700 User-Agent: Mozilla/5.0 (X11; Linux i686; rv:38.0) Gecko/20100101 Thunderbird/38.6.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit X-Pg-Spam-Score: -2.7 (--) List-Archive: List-Help: List-ID: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: X-Mailing-List: pgsql-sql Precedence: bulk Sender: pgsql-sql-owner@postgresql.org On 03/21/2016 08:29 AM, Bert wrote: > That is easy to check. > > Let's do the same test again: > # select count(1) from dlp.st_itemseat; > count > ------- > 12 > (1 row) > > # select count(1) from loaddlp.st_itemseat_insert; > count > ------- > 87 --> of which 12 are already in the dlp.st_itemseat table > (1 row) > > # explain analyze * > QUERY PLAN > ----------------------------------------------------------------------------------------------------------------------------------------------------------------- > Insert on st_itemseat (cost=55.47..69.97 rows=150 width=228) (actual > time=2.345..2.345 rows=0 loops=1) > CTE upsert > -> Update on st_itemseat et (cost=17.50..55.42 rows=2 width=240) > (actual time=0.493..0.545 rows=12 loops=1) > -> Hash Join (cost=17.50..55.42 rows=2 width=240) (actual > time=0.303..0.318 rows=12 loops=1) > Hash Cond: ((et.tick_server_id = > st_itemseat_insert_1.tick_server_id) AND (et.itemseat_id = > st_itemseat_insert_1.itemseat_id)) > -> Seq Scan on st_itemseat et (cost=0.00..13.10 > rows=310 width=14) (actual time=0.025..0.028 rows=12 loops=1) > -> Hash (cost=13.00..13.00 rows=300 width=234) > (actual time=0.244..0.244 rows=87 loops=1) > Buckets: 1024 Batches: 1 Memory Usage: 13kB > -> Seq Scan on st_itemseat_insert > st_itemseat_insert_1 (cost=0.00..13.00 rows=300 width=234) (actual > time=0.005..0.120 rows=87 loops=1) > -> Seq Scan on st_itemseat_insert (cost=0.04..14.54 rows=150 > width=228) (actual time=0.637..0.726 rows=75 loops=1) > Filter: (NOT (hashed SubPlan 2)) > Rows Removed by Filter: 12 > SubPlan 2 > -> CTE Scan on upsert (cost=0.00..0.04 rows=2 width=8) > (actual time=0.498..0.561 rows=12 loops=1) > Planning time: 1.122 ms > Execution time: 2.682 ms > > # * > INSERT 0 0 > > # select count(1) from dlp.st_itemseat; > count > ------- > 87 > (1 row) > > > * the upsert query can be found attached to the first mail, but the > difference is that the 'where loadtabletime' is removed > > As you can see the in the update part of the explain the 'rows' nr is > 12. Which is what is expected. > But the rows on the insert are again 0, while it should be 75. They are seen, including the 12 rows that are filtered out for updating: " -> Seq Scan on st_itemseat_insert (cost=0.04..14.54 rows=150 width=228) (actual time=0.637..0.726 rows=75 loops=1) Filter: (NOT (hashed SubPlan 2)) Rows Removed by Filter: 12 SubPlan 2 " I do not know why that value is not propagated up to 'Insert on st_itemseat ...'. > > wkr, > Bert > -- Adrian Klaver adrian.klaver@aklaver.com -- Sent via pgsql-sql mailing list (pgsql-sql@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-sql