Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1pRaSW-0003F8-Vm for pgsql-performance@arkaria.postgresql.org; Mon, 13 Feb 2023 15:09:37 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1pRaSV-00044A-Iz for pgsql-performance@arkaria.postgresql.org; Mon, 13 Feb 2023 15:09:35 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1pRaSV-000441-6m for pgsql-performance@lists.postgresql.org; Mon, 13 Feb 2023 15:09:35 +0000 Received: from smtp-o-3.desy.de ([131.169.56.156]) by makus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1pRaSR-0002oq-Kv for pgsql-performance@lists.postgresql.org; Mon, 13 Feb 2023 15:09:33 +0000 Received: from smtp-buf-3.desy.de (smtp-buf-3.desy.de [IPv6:2001:638:700:1038::1:a6]) by smtp-o-3.desy.de (Postfix) with ESMTP id 8C840607F2 for ; Mon, 13 Feb 2023 16:09:27 +0100 (CET) DKIM-Filter: OpenDKIM Filter v2.11.0 smtp-o-3.desy.de 8C840607F2 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=desy.de; s=default; t=1676300967; bh=6uGnWx09YvPgwVL0xfaFfKZ6AUlxkRMJ9v/goUoImAQ=; h=Date:From:To:Subject:From; b=c4Um4UBQahLVUGb881E0SgVxjBYZl2YA9jyltFevxzeaeKknfZNmzWmphwfQtOG5e jEsW2nlRtCgsmlVu4cp1FHb49702+iNPt2bxMkD3b3d7C66wx9wzCTrNwMBaHM+a/n pdx/mFHXvMZsBxWA1IqPCD03mV9bVPLqj9EsacKw= Received: from smtp-m-3.desy.de (smtp-m-3.desy.de [131.169.56.131]) by smtp-buf-3.desy.de (Postfix) with ESMTP id 8717FA00B3 for ; Mon, 13 Feb 2023 16:09:27 +0100 (CET) Received: from smtp-intra-3.desy.de (smtp-intra-3.desy.de [IPv6:2001:638:700:1038::1:45]) by smtp-m-3.desy.de (Postfix) with ESMTP id 8422160050 for ; Mon, 13 Feb 2023 16:09:27 +0100 (CET) Received: from z-mbx-2.desy.de (z-mbx-2.desy.de [131.169.55.140]) by smtp-intra-3.desy.de (Postfix) with ESMTP id 7CF388003A for ; Mon, 13 Feb 2023 16:09:27 +0100 (CET) Date: Mon, 13 Feb 2023 16:09:27 +0100 (CET) From: "Mkrtchyan, Tigran" To: pgsql-performance@lists.postgresql.org Message-ID: <852709814.33938384.1676300967338.JavaMail.zimbra@desy.de> Subject: Performance of UPDATE operation MIME-Version: 1.0 Content-Type: multipart/signed; protocol="application/pkcs7-signature"; micalg=sha-256; boundary="----=_Part_33938385_141688038.1676300967479" X-Mailer: Zimbra 9.0.0_GA_4485 (ZimbraWebClient - FF109 (Linux)/9.0.0_GA_4478) Thread-Index: mpQmNueL2JHXxkVCgVNJdrUZh77Lpw== Thread-Topic: Performance of UPDATE operation List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk ------=_Part_33938385_141688038.1676300967479 Date: Mon, 13 Feb 2023 16:09:27 +0100 (CET) From: "Mkrtchyan, Tigran" To: pgsql-performance@lists.postgresql.org Message-ID: <852709814.33938384.1676300967338.JavaMail.zimbra@desy.de> Subject: Performance of UPDATE operation MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-Mailer: Zimbra 9.0.0_GA_4485 (ZimbraWebClient - FF109 (Linux)/9.0.0_GA_4478) Thread-Index: mpQmNueL2JHXxkVCgVNJdrUZh77Lpw== Thread-Topic: Performance of UPDATE operation Dear Postgres Folks, Typically we expect that UPDATE is a slow operation in PostgreSQL, however, there are cases where it's hard to understand why. In particular, I have a table like ``` CREATE SEQUENCE t_inodes_inumber_seq START WITH 1 INCREMENT BY 1 NO MINVALUE NO MAXVALUE CACHE 1; CREATE TABLE t_inodes ( inumber bigint PRIMARY KEY, icrtime timestamp with time zone NOT NULL, igeneration bigint NOT NULL ); ``` and a transaction that inserts and update an entry in that table: ``` BEGIN; INSERT INTO t_inodes (inumber, icrtime, igeneration) VALUES (nextval('t_inodes_inumber_seq'), now(), 0) RETURNING inumber \gset UPDATE t_inodes SET igeneration = igeneration + 1 where inumber = :inumber; END; ``` The pgbench shows the following result: ``` $ pgbench -h localhost -n -r -f update.sql -t 10000 -c 64 -j 64 testdb pgbench (15.0 (Debian 15.0-1.pgdg110+1)) transaction type: update.sql scaling factor: 1 query mode: simple number of clients: 64 number of threads: 64 maximum number of tries: 1 number of transactions per client: 10000 number of transactions actually processed: 640000/640000 number of failed transactions: 0 (0.000%) latency average = 11.559 ms initial connection time = 86.038 ms tps = 5536.736898 (without initial connection time) statement latencies in milliseconds and failures: 0.524 0 BEGIN; 0.819 0 INSERT INTO t_inodes (inumber, icrtime, igeneration) 0.962 0 UPDATE t_inodes SET igeneration = igeneration + 1 where inumber = :inumber; 9.203 0 END; ``` My naive expectation will be that updating the newly inserted record should cost nothing... Are there ways to make it less expensive? Best regards, Tigran. ------=_Part_33938385_141688038.1676300967479 Content-Type: application/pkcs7-signature; name=smime.p7s; smime-type=signed-data Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="smime.p7s" Content-Description: S/MIME Cryptographic Signature MIAGCSqGSIb3DQEHAqCAMIACAQExDzANBglghkgBZQMEAgEFADCABgkqhkiG9w0BBwEAAKCAMIIF vzCCBKegAwIBAgIMJENPm+MXSsxZAQzUMA0GCSqGSIb3DQEBCwUAMIGNMQswCQYDVQQGEwJERTFF MEMGA1UECgw8VmVyZWluIHp1ciBGb2VyZGVydW5nIGVpbmVzIERldXRzY2hlbiBGb3JzY2h1bmdz bmV0emVzIGUuIFYuMRAwDgYDVQQLDAdERk4tUEtJMSUwIwYDVQQDDBxERk4tVmVyZWluIEdsb2Jh bCBJc3N1aW5nIENBMB4XDTIxMDIxMDEyMzEwOVoXDTI0MDIxMDEyMzEwOVowWDELMAkGA1UEBhMC REUxLjAsBgNVBAoMJURldXRzY2hlcyBFbGVrdHJvbmVuLVN5bmNocm90cm9uIERFU1kxGTAXBgNV BAMMEFRpZ3JhbiBNa3J0Y2h5YW4wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQClVKHU er1OiIaoo2MFDgCSzcqRCB8qVjjLJyJwzHWkhKniE6dwY8xHciG0HZFpSQqiRsoakD+BzqINXsqI CkVck5n7cUJ6cHBOM1r4pzEBcuuozPrT2tAfnHkFFGTZffOXgjmEITfSh6SD+DYeZH4Dt8kPZmnD mzWMDFDyB67WWcWApVC1nPh29yGgJk18UZ+Ut9a+woaovMZlutMbuvLVt/x5rpycMw0z+J1qeK7J 8F3bKb0o2gg+Mnz9LzpLtJp7E9qJUKOTkZGDua9w9xrlo4XGX9Vn72K5wodu6woahdgNG+sXRcJM RH3aWgfdznoi1ORLJCfTbdfjSBpclvt/AgMBAAGjggJRMIICTTA+BgNVHSAENzA1MA8GDSsGAQQB ga0hgiwBAQQwEAYOKwYBBAGBrSGCLAEBBAgwEAYOKwYBBAGBrSGCLAIBBAgwCQYDVR0TBAIwADAO BgNVHQ8BAf8EBAMCBeAwHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsGAQUFBwMEMB0GA1UdDgQWBBQG 1+t/IHSjHSbbu11uU5Iw7JW92zAfBgNVHSMEGDAWgBRrOpiL+fJTidrgrbIyHgkf6Ko7dDAjBgNV HREEHDAagRh0aWdyYW4ubWtydGNoeWFuQGRlc3kuZGUwgY0GA1UdHwSBhTCBgjA/oD2gO4Y5aHR0 cDovL2NkcDEucGNhLmRmbi5kZS9kZm4tY2EtZ2xvYmFsLWcyL3B1Yi9jcmwvY2FjcmwuY3JsMD+g PaA7hjlodHRwOi8vY2RwMi5wY2EuZGZuLmRlL2Rmbi1jYS1nbG9iYWwtZzIvcHViL2NybC9jYWNy bC5jcmwwgdsGCCsGAQUFBwEBBIHOMIHLMDMGCCsGAQUFBzABhidodHRwOi8vb2NzcC5wY2EuZGZu LmRlL09DU1AtU2VydmVyL09DU1AwSQYIKwYBBQUHMAKGPWh0dHA6Ly9jZHAxLnBjYS5kZm4uZGUv ZGZuLWNhLWdsb2JhbC1nMi9wdWIvY2FjZXJ0L2NhY2VydC5jcnQwSQYIKwYBBQUHMAKGPWh0dHA6 Ly9jZHAyLnBjYS5kZm4uZGUvZGZuLWNhLWdsb2JhbC1nMi9wdWIvY2FjZXJ0L2NhY2VydC5jcnQw DQYJKoZIhvcNAQELBQADggEBADaFbcKsjBPbw6aRf5vxlJdehkafMy4JIdduMEGB+IjpBRZGmu0Z R2FRWNyq0lNRz03holZ8Rew0Ldx58REJmvAEzbwox4LT1wG8gRLEehyasSROajZBFrIHadDja0y4 1JrfqP2umZFE2XWap8pDFpQk4sZOXW1mEamLzFtlgXtCfalmYmbnrq5DnSVKX8LOt5BZvDWin3r4 m5v313d5/l0Qz2IrN6v7qNIyqT4peW90DUJHB1MGN60W2qe+VimWIuLJkQXMOpaUQJUlhkHOnhw8 82g+jWG6kpKBMzIQMMGP0urFlPAia2Iuu2VtCkT7Wr43xyhiVzkZcT6uzR23PLsAADGCApswggKX AgEBMIGeMIGNMQswCQYDVQQGEwJERTFFMEMGA1UECgw8VmVyZWluIHp1ciBGb2VyZGVydW5nIGVp bmVzIERldXRzY2hlbiBGb3JzY2h1bmdzbmV0emVzIGUuIFYuMRAwDgYDVQQLDAdERk4tUEtJMSUw IwYDVQQDDBxERk4tVmVyZWluIEdsb2JhbCBJc3N1aW5nIENBAgwkQ0+b4xdKzFkBDNQwDQYJYIZI AWUDBAIBBQCggc4wGAYJKoZIhvcNAQkDMQsGCSqGSIb3DQEHATAcBgkqhkiG9w0BCQUxDxcNMjMw MjEzMTUwOTI3WjAtBgkqhkiG9w0BCTQxIDAeMA0GCWCGSAFlAwQCAQUAoQ0GCSqGSIb3DQEBCwUA MC8GCSqGSIb3DQEJBDEiBCA+n3o/B+SUub1EZ7JG4bZumxaKtRu9LMrGTq1raGO3RzA0BgkqhkiG 9w0BCQ8xJzAlMAoGCCqGSIb3DQMHMA4GCCqGSIb3DQMCAgIAgDAHBgUrDgMCBzANBgkqhkiG9w0B AQsFAASCAQA6yjVZ4F+ZZzy1313mJrgchiHaXM9DRiIoevQImO+PIxsZ9pz7wygoAEiOq82IBdHZ Ee6Ie/JOwENn+koWepXYwmy/iz0Okr2BA1z3mKVlEghopZNgAJatPP34DwUN0KLqf9LUpTMHTfvH StY9WJemz/mbIHyA6anTyqd+jmRrqHyij4JwetKVe080oBGPA5vvLEGNB1C3gs1hjd3UxWHlyFyY B3hUNNVnxBMoQAsf3RV9JfdvFsJHiVxTgi3shSQM6E2w3ZxEUMZEFagIQSQ3GEug5huBLjLNGXqk fbzEnNh8fqpLqWN5tGKRGhRmXobyYu7hjbIp0wiilzUr4fvoAAAAAAAA ------=_Part_33938385_141688038.1676300967479--