Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bnVax-0008OI-Jl for pgsql-performance@arkaria.postgresql.org; Fri, 23 Sep 2016 18:53:11 +0000 Received: from localhost ([127.0.0.1] helo=postgresql.org) by malur.postgresql.org with smtp (Exim 4.84_2) (envelope-from ) id 1bnVav-0006s3-W3 for pgsql-performance@arkaria.postgresql.org; Fri, 23 Sep 2016 18:53:10 +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 1bnVZG-00051v-DU for pgsql-performance@postgresql.org; Fri, 23 Sep 2016 18:51:26 +0000 Received: from mail-by2nam03on0062.outbound.protection.outlook.com ([104.47.42.62] helo=NAM03-BY2-obe.outbound.protection.outlook.com) by makus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1bnVZC-0004kJ-Dw for pgsql-performance@postgresql.org; Fri, 23 Sep 2016 18:51:24 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=BlueTreble.onmicrosoft.com; s=selector1-bluetreble-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=uLTw4pLjeg0UiW2Rbk0/rpCNtP4B3LWSuTU4G0raM8s=; b=ATKbJFGjpS7LU1HKr2Xj0RQDkQ9mhxxUgIteOLrseAJbro7QoEznF+rAlfQcmBsOi87lq/IzZEXthFYHHGJBufc3ZNpFoYuMUTJn1VJYuFbE1mkniuFeLscv2Uep3i3P/Fz/VgSoadFNbo//UPcKOTFIykK5zDs4HRdVL8mcFg0= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Jim.Nasby@bluetreble.com; Received: from decina.local (70.113.16.71) by BN6PR11MB1635.namprd11.prod.outlook.com (10.172.24.8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.629.8; Fri, 23 Sep 2016 18:51:19 +0000 Subject: Re: Strange nested loop for an INSERT To: phb07 , References: <1f22a3fa-dcc5-eeac-a708-7f10fada4674@apra.asso.fr> <25256.1473691295@sss.pgh.pa.us> <224290ce-84bb-935f-1743-3f036ae3d508@apra.asso.fr> <06b366f8-7e3d-ec7d-d146-1984818d3bcc@BlueTreble.com> From: Jim Nasby Message-ID: Date: Fri, 23 Sep 2016 13:51:15 -0500 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.11; rv:45.0) Gecko/20100101 Thunderbird/45.3.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset="windows-1252"; format=flowed Content-Transfer-Encoding: 8bit X-Originating-IP: [70.113.16.71] X-ClientProxiedBy: CY1PR04CA0039.namprd04.prod.outlook.com (10.166.187.49) To BN6PR11MB1635.namprd11.prod.outlook.com (10.172.24.8) X-MS-Office365-Filtering-Correlation-Id: 1a5f01e6-b838-4602-0afd-08d3e3e29b6e X-Microsoft-Exchange-Diagnostics: 1;BN6PR11MB1635;2:vUmvom0qNIbZ3C3dyhzbSz3FgxYQcjVYmW6mxqDi0s0Ec3w7aw1cY+romjrNrDWaRUaTACBl80qPi4ypb6AvCx4YRQllZ0KvzMjmaPH+DYULjes9GjYMF5HlGVcsH5rmL0AsBlOpM61VKQmlvnBEadITbRD/N/izsc/bUbZHCSQ2qUKcLj/jd+FdH8YDPAFK;3:1asEHDeQLANU4S6/YUWS2tEH5ZGgzgU0fgHdY2z2aqINAh14ZazfFzhvOlLjks4LlzhDhIFpU5q7OicrEnYvcCS51tJ+c5eZxqQej8tWwf1PcwzGF5ZONS7CYuDtDHZS X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:BN6PR11MB1635; X-Microsoft-Exchange-Diagnostics: 1;BN6PR11MB1635;25:bwMFGswMN7uFdDgol7qVBViZM8in0LR+qteObUdqWHQPOUwll6eprVbtPvL5uPm0wZ3Tk1IaE/E1sV/z9R5INFZ5Dp3Y3+Ixcp1bY0H8he+kjvaCvTK4jrhUThpILuA+WRolch9XpvvSD+vYaUHt2F8m5pNFC/7Mn8qohBxBq5d3I+1AyV5uR0nDQreb/DX6CeRiAgChxnvWsxYoWWNkKWJ2NDQn3ILknjir5SJ0D5HbFAbnTqG2C1mOwNsOPX7T2+xfeftGt1wtlrL8IoPHKOKxhkEwZuv3Espb6w2Pijm+S+bCGMBzdRrSRmKpBFIIbzVxGKjkfs3FeLms+miNcLlBrG96xWxWOeneIOmomLFwL9qhkD8DpZqdIh63mFmGhq9sDE2jaqxrNNFIohV5wi0uM+9zDcZueumy9n9WGS3IHZU4PWkbNgjap/gmUYVMonQrIqFihFCa3oLRg8w06rairCQ2G0dF3aRY3n7KiD2OGhjtIQ+ON5PXkeG7RzuGS1ADojUUBe5BjEHfRdzVsf1LpZNTHEtzt9/TjmTXS3+VNRM3RfNjdjQQbXwDjIICP8eIRVPa9JIpyH79aQIGfv4w2G90vNjvRNeNv5iaftkxKJBZQSLGyWRZEeQEIzX7DD/SDHpWwH9EcIl9dbpv3fVNoQfSTmrrjvEAloeDJ4E9B1SiqLt07afdr7oeVmNxT0byNsq3Wn2hPEZHWS1CWVD0bJR+uaGPkr0vn/MYelMLIXSfyMO8OQ8P8jw8JSg+Jm7sAndAF4BJUwSJqRb6avdgkaWkKU1fn5t3hPQQs0kELLK5/n6EbphfuOVYyyQ4Daahqnmn3l9aPsIA7l7rnA== X-Microsoft-Exchange-Diagnostics: 1;BN6PR11MB1635;31:edxpJu1GaqLQ8yBdIRJjwmOeS0TuD6TOUnE9MXceM3uX4xdcp/rR8t8hDaAWonuDBtfDjnbzRb76PEScaOMUxeGEvSMT3I3VdMYndsTPyIVXmsbox6xjBDulVj+pbSgihKxAUPT39o3YXlKbD/HmQ8XULCtaIgx2t2Hhv0tu7fnju+oaBzHIMTBqpJ4RAhcXLvoemAZpgMFkjgz1laXw8MlPsX2NduXUaX47DAOZ9M4=;4:5VRh5qlyoI9pohIKmoBs71pDQ/Bvrj535d0oEBLmkbOhIPdOI8n/tx0vQda4d7BDBhip7r6YApx7VQT3WUXFJuoa5ysa4TFMYGIfn15s+uVz3HIiuvk32fg+b1lCB6Fk/ccr5V2wx/UIN0Smq1e4Gzr1y0g7yC+fgNbXmkmahp1JNnWPT8dg0xMNoNTQL2d9QCmNTBf9M0RX/QgKzx3JuodfhsPWUEdmB6xIOm+FbsDmO34GO5L0J28uD29WBqGQ3cMPfM/DytKSK5f0m1kK/bRf1HCCo7hj6CCsqELrDN0x4gNH0aSJWG+OqR24Jv/8sOCSPOUssTnrAKtDY2MydbrmUZn9R7KBTQymRi/LZw+sI/EDf3lJWEJmI1g94NOaP8IB19m6ppseUCgpiB7t1/t+mBiQvs8NsO/Sr8Zhr4E= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(6040176)(601004)(2401047)(8121501046)(5005006)(3002001)(10201501046)(6042046)(6043046);SRVR:BN6PR11MB1635;BCL:0;PCL:0;RULEID:;SRVR:BN6PR11MB1635; X-Forefront-PRVS: 0074BBE012 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10009020)(4630300001)(6009001)(7916002)(199003)(24454002)(189002)(377454003)(50466002)(3846002)(97736004)(86362001)(8676002)(189998001)(2870700001)(92566002)(65956001)(50986999)(64126003)(23746002)(68736007)(76176999)(5001770100001)(2906002)(33646002)(7736002)(36756003)(81166006)(54356999)(101416001)(305945005)(81156014)(66066001)(93886004)(551934003)(42186005)(15975445007)(7846002)(16601075003)(4001350100001)(6116002)(47776003)(77096005)(65806001)(31686004)(586003)(105586002)(83506001)(107886002)(19580395003)(5660300001)(106356001)(31696002)(65826007)(2950100002)(2101003)(85282002);DIR:OUT;SFP:1101;SCL:1;SRVR:BN6PR11MB1635;H:decina.local;FPR:;SPF:None;PTR:InfoNoRecords;A:1;MX:1;LANG:en; Received-SPF: None (protection.outlook.com: bluetreble.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?Windows-1252?Q?1;BN6PR11MB1635;23:jLm+9fFL/jr7hu+SRvr6c26kQmXpAUvTlmTys?= =?Windows-1252?Q?LxDlQfh+7e5+Hz8myI48W1l5GX3koFhweRBqvJ//0IMygkipbA7I//SJ?= =?Windows-1252?Q?zCZE+og51kyQzXL1c/c2QwlSa0Gmx9t7MFGDBzwPOHY393MgRCMQo8/h?= =?Windows-1252?Q?uf46OgcSt0piHavQSJCc+Nrmn5yQiX1ZVfI1U6YswgBTcKyiK32yC3Yx?= =?Windows-1252?Q?AJfrxjODDBFEDfoYJ+GtuWNkLh57XMNKT6ERGh2FAlZwOqdPiTl9NPvV?= =?Windows-1252?Q?3ajaTdxrK7Y4VuZSKAmzmYRz/q1iMWUPU2K9jXZHIXs+HpafxaV13sEN?= =?Windows-1252?Q?jfDQ/YNaFkgPgQcQBjJSm4gzcVlsSBin13PKKGL8HLDT/PA8gs+WyNqu?= =?Windows-1252?Q?Se4EfclZpbLjKD4wSZ6Wn8SzJiM/7B8EIBKPJEiKlXd3sYx2QOxRr+6m?= =?Windows-1252?Q?bNuDH9u4hPgBEw1qzycl8f+VqihoJy40dV+++FPEshtQcDwN7PsQLLk4?= =?Windows-1252?Q?v3wfLq2OhzeU2vI3F22bSLFWRNd2JuiFKbq0O9ChF1d7/JoCCBRh/luq?= =?Windows-1252?Q?BJInrSN+8qtGSYgl+WBmxIvX0L3bwkCDVBqbjdWrh5srQcV1UqHgOp7w?= =?Windows-1252?Q?FDj3KjDhLn8QyAGTTdNli8SPKjrEG4SV/oJ0p93RxnKsomWuHNzJDS1R?= =?Windows-1252?Q?Ir3JhDmq/AZG0D7D5xlY58/Apcm7g7W+/SrGPdVx04RQLeU4ZUtKcgOT?= =?Windows-1252?Q?RHyCXsTY1+h96J951EW0yY15MqkNJe2YvxqHyBt9eYgFl3xtZgYiRK+D?= =?Windows-1252?Q?TI64p/g8zYOq01fet3g+mLurtpdkKveadUAytzfBRzYTNDAmD+x9myA7?= =?Windows-1252?Q?dn2Y9iuu+IZZoageQ2asNuAQapHEuEVZkAC4Utcq5KdXvpPZ3xCEJsU4?= =?Windows-1252?Q?MbU0msEEs8M28Jxk7fZDtyPVvvSxxoTzYY5xRWKIgpJtmPOnbP2bzoC0?= =?Windows-1252?Q?JsswB9VdvIfAr+kdjGA5XaNme6AqYPyFfUVVWjdDN4S9K8MGDYHXLf7u?= =?Windows-1252?Q?2RGcsBFLNuJ9SvQMXvd7GFNV4ANMoWYbFQDqixxd+SRQ3n/cI/whxhO7?= =?Windows-1252?Q?WeMLXzwJu3lKaiC4tAdZsqLbPmQsGCBM8kOoHh5Qs1ZayOCZrW/kmp4U?= =?Windows-1252?Q?DfkggS1VXH5s3NUZ1bt5dMj53flM7OmIn3XUCRhn5Y9Eucuvnq8knmaO?= =?Windows-1252?Q?Sf1ZNc3FYfzEz/Mkpvfw1qFujyGLdogp4JdQszpoEnhKrgPfOTXB57UA?= =?Windows-1252?Q?FMYLPbicVE+JdX+uLHyVNuKgUBKW4h5GYmBinfNPZ9Ysk8RKophfr3J6?= =?Windows-1252?Q?gQeaKwbJAmsKsesp29IoVKDlbbpaGT5q/vSRVgyImr+byQhtKhJHQblK?= =?Windows-1252?Q?WkW3IfuPBq8L8/OW7dB4N6X4ee7KYXoWfatj7ue5xnt7UvlE+B2voJJx?= =?Windows-1252?Q?FFs92A+AkatwDLabL8I99rsUGWl?= X-Microsoft-Exchange-Diagnostics: 1;BN6PR11MB1635;6:oZmTc0LlePVzEAra7MMZq+3VicbZd3oiHpKmEHZ03ZCfwrB2sDm56pU7N6wnzJD4otkdgM8YRc+EaWrjuXQp+S/jRQtEvzWrybhxcNDgyLGPldA7PMgwTgRvYwLcvHDv5m7kVAoJM26CWdngbstAK1tIradk61tyfyZA0ml+UIvU+YTT2NMhEQdg0xgbjeQi7H4dQrJYIP7kg6a7iiKT/FKPFVYFvw6CZF1iX9cSetRqDRK59QCzsauykPB+V38YYodgCdiBJbpODtlKBxxy0O3oadbp/N0KXRgq3JRPEGRVt8w3eEcioqNissvhrGIY;5:cd/05qHxP5zrZ4myoLvfCsiPmQtVSXKYMCjqR2gMj+44TiUFrhyE2C0zK5K814jVYMrdf8X7oE3ofWdziS+HTplOKiVUMSm70MpXB2E9zAqj9T3ewMMWtH0VADv/MmvHkKGcW0HWzwwtenrXwDfBlg==;24:tCcN/PGkhl522HOs7o9GZtmfFz9BzmrA45nG365JJQW6jZDZqKnKmi2gRRPsi1xei4tSYzZL61zOQPgBYGVL+OlVhLJx95dgT5cUG+Ku3Ig=;7:lzhzYvpDCqzGYDljWLtmFRrSdk1Ef0iTBgGfl34y9KVIo8ocguerlA55aYyjmWy7y/+eGGOYCx6JC8hPbFtF+O4skn1jYmKcqZbc+a7lGbNr6sVnVa8t/cUulsrtUEP5Hzw0KNUIIlPunE0k4YQoTxAEJSwnM/0/nRXhNtonXXqcXTBA1yLf0bGBBG/l3c5rkv32YkY7rxD00xjX5wCJwcj4Ali9zgV+siFnuJGKxPyWwS2IUeE280X/jj9QpRE9gSEO2AFMUfcy+KDSCDBz1FGWqiq/kney9/rsyldJTPf7BO9LmxNKaA38HwM9WZIk SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: bluetreble.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Sep 2016 18:51:19.4592 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN6PR11MB1635 X-Pg-Spam-Score: -1.8 (-) 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 On 9/23/16 12:59 PM, phb07 wrote: > > Le 21/09/2016 à 23:42, Jim Nasby a écrit : >> On 9/12/16 1:05 PM, phb07 wrote: >>> The drawback is the overhead of this added ANALYZE statement. With a >>> heavy processing like in this test case, it is worth to be done. But for >>> common cases, it's a little bit expensive. >> >> You could always look at the number of rows affected by a command and >> make a decision on whether to ANALYZE based on that, possibly by >> looking at pg_stat_all_tables.n_mod_since_analyze. > I have solved the issue by adding an ANALYZE between both statements. To > avoid the associated overhead for cases when it is not worth to be done, > the ANALYZE is only performed when more than 1000 rows have just been > deleted by the first statement (as the logic is embeded into a plpgsql > function, the GET DIAGNOSTICS statement provides the information). This > threshold is approximately the point where the potential loss due to bad > estimates equals the ANALYZE cost. > But the idea of using the n_mod_since_analyze data to also take into > account other recent updates not yet reflected into the statistics is > very interesting. Another interesting possibility would be to look at pg_catalog.pg_stat_xact_all_tables; if you add n_tup_ins, _upd, and _del that will tell you how much n_mod_since_analyze will be increased when your transaction commits, so you could guage exactly how much the current transaction has changed things. -- Jim Nasby, Data Architect, Blue Treble Consulting, Austin TX Experts in Analytics, Data Architecture and PostgreSQL Data in Trouble? Get it in Treble! http://BlueTreble.com 855-TREBLE2 (855-873-2532) mobile: 512-569-9461 -- Sent via pgsql-performance mailing list (pgsql-performance@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-performance