Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1wRUG3-002NzV-0C for pgsql-hackers@arkaria.postgresql.org; Mon, 25 May 2026 12:18:11 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1wRUG0-001Gth-39 for pgsql-hackers@arkaria.postgresql.org; Mon, 25 May 2026 12:18:09 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1wRUG0-001GtZ-2H for pgsql-hackers@lists.postgresql.org; Mon, 25 May 2026 12:18:09 +0000 Received: from mail-yx1-xb136.google.com ([2607:f8b0:4864:20::b136]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1wRUG0-00000000hIE-0Vxu for pgsql-hackers@postgresql.org; Mon, 25 May 2026 12:18:08 +0000 Received: by mail-yx1-xb136.google.com with SMTP id 956f58d0204a3-651c366f7efso9661175d50.1 for ; Mon, 25 May 2026 05:18:08 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1779711487; cv=none; d=google.com; s=arc-20240605; b=V/pYpEkHWKz+193ecJ5NfifvEyhZpepliT3wg380r+EqTUtstkvC3v/Hvn7APXEVdp wdSaDPbBvc1L3mT/QruqZ9g5truMvZgqsdRfuJU70p2pN7gHxNSKPzCm5PIRBHtvRlwp EudpeFmeg5QeniYlpcj2WgeaonHbXVVTpwu0iXgCPwUYwtjaSP3Uo9nxL0uN3+xl2iL8 jEO2+IRz31F/fvPZEnLiSri9Iugbhmg/B3H8scVv60QntSl/phpD8/7vuhUBfnyaPQLi nCbwMouj2SNGL386ZAbI6gp1aTZnWYjBnyXXK6RiPMykiEYkAJ21mPsQfSg43FJn4hie AhwA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:dkim-signature; bh=w01IZJWRM1wzz1A/jnqlcXAWpV7P7tDdju7kqltQxrY=; fh=r/8VGmd5tubkEqlb/znYEUz/ys/K7k8UrdikcDJ8LXY=; b=B/bMRelTlPg6Ye/ZQzqGNEGSChdg5vVX2bN4dCnZDY6NP+S85KvOajl2dPjaFLZ37f 5qSc+UFJYGRJlUF8G+pr6OLOrHP46cl/4hIpkhyRMzoMmT0T8yEFam1yiUY56RViOT+K f0jIiZEVenky+qXCjlH37Xu9QwlJaw+o1E1mF3fnm7NQ8NEgcvQzcAt+8KmmTMfSbnpw Yj3vAJoMJdtdmsh/ILDfTGN3HTBObaCD3mVKe+9PPZz6kPKTc/TO7oldUQ/79lLZFjEQ vcCRPXNs5P/dAj/UZtMohM2CPqkQRIzr4oc1VRxKhZt98BouxCQWsUnZFqB0enB4IYv2 6DNw==; darn=postgresql.org ARC-Authentication-Results: i=1; mx.google.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1779711487; x=1780316287; darn=postgresql.org; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=w01IZJWRM1wzz1A/jnqlcXAWpV7P7tDdju7kqltQxrY=; b=JMFLTmpScPrr1A6+A6ZDUL5ZoTg10m9083RXjkbT7gGt5VHJUFkxB+cMUa2XO5JxqY DVAO2ob4EvnywsjgiNBgDctrDNtDk9YHAW/jtm9GDcv2TGh+H5ny6OW+SOFGLKJwq7Jm jAaiItLxNg+FoE6UabnSdGT1fI7uzgXCBIhmc/eRw6scNJmN+U7jUnEx/vZlnz1kQR14 2jquOK7VPAPTgb9mprMOqj+R8fkDfjvcdBdNyG8eZGRA2WfhbeM43v5D8ylo8n1nlp6u g5t5P3Lii2baHAxefZYSJKq4K/kQdjOJ+sv5a946C6SdlGPR6N9cSLFfUn375Jl+Ua7s /XBg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1779711487; x=1780316287; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=w01IZJWRM1wzz1A/jnqlcXAWpV7P7tDdju7kqltQxrY=; b=WUAFIUEu3MpQNhYt0DuexjSGAIKfHtp8F5wr9sIM5yz+Ljp5ItFpR2QX76wFEJZs/9 wVrGcBsiUyUIoxjYkM3/pcvo802kK9XQrqxsooq+v6e7pIlnJZpWyhSt03eI67hL30P2 PJMK5SpwUWHH/fVlk+sUp67jgKB8+XWrcjzddxsKGR7kp7XcoqTxE8MQQXloQpNXq3Oj MpDSt4r+gxr4NVRqxLBUdCMTdcTMx63uczRwcuDaw7uiVxw2vrUNv93wuIz5lxY3ETEU lJ8/C1/nWkznKJQ8ij8INKBgo3KAc7YrS5DKjCiwtMHK8tc6VGDaBmWil20VFjZBkF0A wrIw== X-Forwarded-Encrypted: i=1; AFNElJ/FlSfvPKN9m3zlyio++w8AEPowd0fk7oefBdeJKFiMzorRgTTKRfOt4QtyEFzzl1HXt0t6x/vkqKbBujjc@postgresql.org X-Gm-Message-State: AOJu0YxWi9xX8DSdYOaaKSAMN5NN4j4jVUtWJ6NGeOncUOugguRZnq2i Fy+N4EB9M/puY+qL9yw+4ArnISn84mfQRLCe9vkG2RYi3eFueBdVxYXClOPUsxjSlfREUYidIxd zU1JFjUSvfAPd7pFUCZ0Yw3p/BsmbbSI= X-Gm-Gg: Acq92OG/SszWB43I1sTmJsFWlSGWGnjAeEErkx/YbLEC+4khmE9jKUwCYFT/AA6b2u5 lc0viUpBa+5Qa07t7LD3B72zMxTJuPokXTIrn5Wix1I8l8ZQ6jOSeKtYVQDPT5HlHB9V65nHQGb t+Ad20DG81Im+mL/fP35a4AU5msT701bwbRJUwg8unDAojyNwD2qlzJPuXWku1J0JTZmnJ5YAx+ c9eqnSoI5og6JnYvuYXT5BREx26nX/4YW07kGArhqzacaOSBfl5wxHlBAkGz0TIS+Evf+Z54+Xv bNg0XoEFpH1na6DPwMcvi/JJyHjhf3sROlILWeU= X-Received: by 2002:a53:d053:0:20b0:65c:5b88:84a8 with SMTP id 956f58d0204a3-65ec966be89mr11597527d50.14.1779711487106; Mon, 25 May 2026 05:18:07 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Atsushi Torikoshi Date: Mon, 25 May 2026 21:17:56 +0900 X-Gm-Features: AVHnY4LRVjP7C2cl_mdUpFi0VKhNSAc-_IvPnMo32koG_jNXxQNDGZx4FSpe_jA Message-ID: Subject: Re: RFC: Allow EXPLAIN to Output Page Fault Information To: Jelte Fennema-Nio Cc: torikoshia , Pgsql Hackers , Tomas Vondra Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk On Sun, May 24, 2026 at 6:50=E2=80=AFPM Jelte Fennema-Nio wrote: > > On Fri, 22 May 2026 at 18:07, Atsushi Torikoshi > wrote: > > Updated the patch to clarify that the reported values include not only > > the backend process executing the query, but also any parallel query > > worker processes involved in the query. > > For PG19 Tomas added an IO option to EXPLAIN. I think it would be > better to have the Storage IO tracking be enabled by the IO option, > rather than the BUFFERS option. Thank you for pointing that out. I agree that having this under the IO option seems more intuitive. One thing I am slightly concerned about, though, is that according to the documentation, the IO option reports only I/O performed by scan nodes: > Include information on I/O performed by scan nodes providing such informa= tion. In contrast, the information produced by this patch is based on getrusage(), so it includes all Storage I/O performed by the backend and parallel workers, not just scan nodes. For example, it would also include temporary file I/O generated by operations such as sorts that spill to disk when they exceed work_mem. I suppose this could be clarified in the documentation, but I would be interested to hear if anyone has concerns or objections about that approach. -- Regards, Atsushi Torikoshi