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 1vq0sQ-002mRy-0j for pgsql-general@arkaria.postgresql.org; Wed, 11 Feb 2026 03:26:55 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1vq0sP-002AV0-0n for pgsql-general@arkaria.postgresql.org; Wed, 11 Feb 2026 03:26:54 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1vq0sO-002AUr-2m for pgsql-general@lists.postgresql.org; Wed, 11 Feb 2026 03:26:53 +0000 Received: from mail-ej1-x630.google.com ([2a00:1450:4864:20::630]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1vq0sN-000000005Th-1ovY for pgsql-general@lists.postgresql.org; Wed, 11 Feb 2026 03:26:53 +0000 Received: by mail-ej1-x630.google.com with SMTP id a640c23a62f3a-b79f8f7ea43so277056866b.2 for ; Tue, 10 Feb 2026 19:26:50 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1770780410; cv=none; d=google.com; s=arc-20240605; b=iQv9RdOm0NtavDz4SgmwjcwtQGTTT94hKeWnI32ki5tqzvdCMU0D80CJz99bqyoN8e oUKpFvhlwnlRtndNqafSB4sGM34QgGnLsTdEbT4qlMQgROHEhQiB/l5k/7KXQcTBfu2u vAzINzK0zLCa1BJ2N2Y8SCxTJ18qczpZa32OvSDHJT0Rz1ye7a9hfkf0eQ6PisiD/DNB 56AdEQktbJCklySMFSx3wY2aj00rYV/d5BaTnT5msW952vws2Bf/jmzHKCq242c73zwZ Xcc9Ir6d0RN3JBI7X3ncD/dfeT94yVtU4X7ETKhJ0ZHw+DDpyGq/loMQ3OEDozu+aFHi wqGg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:dkim-signature; bh=ad/x7GVDtYAO8K6uekGcmsR+1W1mYwpPnJOdR2Mn3/Q=; fh=1i3EzMI3/SJAmYjq3gFfFgSsMFbOij3SgU3G87zzXTI=; b=CVEc6c90wk1w8C38VM3zcydZk4vDf3tKU8da4WtE4plvgkkG4okkk5dfDe+G4XIse8 9eSue0ofEOdLKi78vksVP16n6udaVoXYIKubecm7q+oqIu8n//5buBiCZUlHp5crkPxZ TMgWcwSpMlzU3qQdG5sU+crMXlnnyU+7fJgcqZETnbm8eE+HpmP1SChQXRk88dlVRB6u DooUBwWqTJ/2w6NSeXBLqaOWmq2L8Hw21ZvdqRglBP/jMQzkO2A6Rc9ghUFCo3W677NA 3GoVdAJwATQ4HRM40vpOsPzBsU+9884zHW0Od/6YofT9WV/kN29ENV6dO8islV8rSvmf CcPA==; darn=lists.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=20230601; t=1770780410; x=1771385210; darn=lists.postgresql.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=ad/x7GVDtYAO8K6uekGcmsR+1W1mYwpPnJOdR2Mn3/Q=; b=ZHJbdDqljwY2zpOtjaE7/1PJuQ7Ls3QhaYBC4h/ctfK8lrW0f8OVc1TqURoGicCQ4r EHanLKH34wNJV/c5Mc118NkBrby7BCXpcT/Mzk0FiVbui2f6lPcts+mLByGgjUf8RJUP zNqiRV8PdZKWQXYF+HA7JijUHC4QsHGCE2D1qFKMi0BdgMZudA7ivb48GzhmISyOvq9x au4svhx5bdRUE7cCs+y69l2bimj5raUzOvzO+upypzYQtcLoHxOd72I7VGeSp+Ypw+rL dZj52O4wrPU7lMiuD534eKiGXfYAmtkK8KUu6oMqK5qBJEozEyc/+gWUUcGNmZY+Z28t F7cw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1770780410; x=1771385210; h=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=ad/x7GVDtYAO8K6uekGcmsR+1W1mYwpPnJOdR2Mn3/Q=; b=pm1VIO8/pMQ0x2qBvk1ERBpRwuG6KGHUQ1NLjEnYF51GYrvg6i4KIHqNJTTMG6S3yU klS+X5YJKiTpwVguWcyfohhLollFFYPHhgm9lGNJYeuW+OTN3WdesGtsY9GC+xeKRrlx w5+1tmYO41usWswKjBJWRF5/Bh9fDaSoFtXp0/6v7EIJymt819TqILYNY56SI2D6XHEB GQHhOPumRD8ZNyv+XCmfQ4Za/cWS2vSoSnxGqIvRuEd45g88RCfsHl5eVWGXBZIHSuDH NpmwR6hOFIf6e8oT/M6Q54vZHtCDrjgAQkCrG+px8uTYpRzEpNwCRqyi7EyLmOgCNuMH t7ww== X-Gm-Message-State: AOJu0YzaDQukL/c9UOfqXOYXZjV8pZJauyqJ8YJQdyOFG/y4mCq8iucl 2roAl6fd+NaRLJfGgCypK9r7/uC5vCU/DREW5EntrVfsRnXeSwmajEIMFzMI1+0b6kCZMynTmhn 7NaVTB4zlLhOSU1aAfJyXamb/Sf1wOyg= X-Gm-Gg: AZuq6aKRo82nshwXsVVl82wyZ33MCbMUyBZGr+QnVW264McnNTAxwQJiW5lfPc89ZtS d7nIZ1Okx8++5kYvb23Ansv9PkyTe9EyLoqR6IJ62ruDrU/JnFSu516bFLfoyJhleXseVAewycD QZZhjDgH5GrBjYajD3HCOlRI4h/Cw1gzfR44GIWswhP9C6QhnzM9YMoAx8OyvbQD5AI/ZPV+76k Fj+1J5oK/H/3jKBtG28SkMx2FBnz4LdK/4hqE48n7Rl/UlAiLSm1yFMGk0+bwYIJOvcfyXtCONb H/Kjh1JSk+3gjBusYm28txGXF4QDl8tkwHMg67w= X-Received: by 2002:a17:907:709:b0:b87:31d1:4131 with SMTP id a640c23a62f3a-b8edf463fd8mr986926466b.60.1770780409890; Tue, 10 Feb 2026 19:26:49 -0800 (PST) MIME-Version: 1.0 References: In-Reply-To: From: Durgamahesh Manne Date: Wed, 11 Feb 2026 08:56:38 +0530 X-Gm-Features: AZwV_QjzFF_KXP7LRj6a8tL2B2DvSHV2t3Tu1rGCqMRn10akunfN-Xbsk9HkgqM Message-ID: Subject: Re: Fillfactor effectiveness on existing table To: Ron Johnson Cc: pgsql-general Content-Type: multipart/alternative; boundary="0000000000004e8960064a83f1b4" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --0000000000004e8960064a83f1b4 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Wed, 11 Feb, 2026, 08:32 Ron Johnson, wrote: > On Tue, Feb 10, 2026 at 9:34=E2=80=AFPM Durgamahesh Manne < > maheshpostgres9@gmail.com> wrote: > >> >> >> On Tue, 10 Feb, 2026, 22:58 Ron Johnson, wrote= : >> >>> On Tue, Feb 10, 2026 at 11:05=E2=80=AFAM David G. Johnston < >>> david.g.johnston@gmail.com> wrote: >>> >>>> On Tuesday, February 10, 2026, Durgamahesh Manne < >>>> maheshpostgres9@gmail.com> wrote: >>>> >>>>> Hi >>>>> >>>>> I added fillfactor with less than 100 to existing table then ran >>>>> vacuum full to take effect >>>>> >>>>> How to ensure the applied fillfactor is working successfully >>>>> >>>>> A ratio of hot updates in catalog table should higher than value of >>>>> n_dead_tup or n_tup_upd? Or what ? >>>>> >>>>> >>>> While free space on the page is necessary for HOT, it is not sufficien= t. >>>> >>>> If you want to prove fillfactor isn=E2=80=99t buggy I=E2=80=99d sugges= t contriving a >>>> test case instead inspecting complex real data. A table with a single >>>> bigint and say 50 fillfactor should be easily visible when inspecting = the >>>> free space of a page in the heap (not sure of the exact query for this >>>> though). There is a page-inspect contrib extension that provides low-= level >>>> details. >>>> >>> >>> What about pgstattuple.free_space and free_percent? >>> >> Hi @Ron >> approx_free_space | 13227478672 approx_free_percent | 30.89065723142561 >> >> Free space can be considered as bloat for non toast table but not for >> both toast and non toast I believe >> > > 1) Did you vacuum? > 2) What's the fillfactor? > > -- > Death to , and butter sauce. > Don't boil me, I'm still alive. > lobster! > @Ron Hi 1) vacuum runs daily once and autovacuum triggers for every 1 hour 2) 80 Regards Durga Mahesh > --0000000000004e8960064a83f1b4 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable


On Wed, 11 Feb, 2026, 08:32 Ron = Johnson, <ronljohnsonjr@gmail= .com> wrote:
On Tue, Feb 10, 2026 at 9:34=E2=80=AFPM Durgamahesh Mann= e <maheshpostgres9@gmail.com> wrote:


On Tue, 10 Feb, 2026, 22:58 Ron Johnson, <ronljohnsonjr@gmai= l.com> wrote:
On Tue, Feb 10, 2026 at 11:05=E2=80= =AFAM David G. Johnston <david.g.johnston@gmail.com> wrote:
On Tuesday, February 10, 2026, Durgamahesh Manne <<= a href=3D"mailto:maheshpostgres9@gmail.com" rel=3D"noreferrer noreferrer" t= arget=3D"_blank">maheshpostgres9@gmail.com> wrote:
Hi=C2=A0

I added fillfactor with less than 100 to e= xisting table then ran vacuum full to take effect=C2=A0

How to ensure the applied fillfactor is wor= king successfully=C2=A0

= A ratio of hot updates in catalog table should higher than value of n_dead_= tup or n_tup_upd? Or what ?


While free space on the page is necessary for HOT,= it is not sufficient.

If you want to prove fillfa= ctor isn=E2=80=99t buggy I=E2=80=99d suggest contriving a test case instead= inspecting complex real data.=C2=A0 A table with a single bigint and say 5= 0 fillfactor should be easily visible when inspecting the free space of a p= age in the heap (not sure of the exact query for this though).=C2=A0 There = is a page-inspect contrib extension that provides low-level details.
<= /blockquote>

What about=C2=A0pgstattuple.free_space and= =C2=A0free_percent?=C2=A0
<= /blockquote>
Hi @Ron=C2=A0
approx_free_space | 13227478672 approx_free_percent | 30.89065723142= 561

= Free space can be considered as bloat for non toast table but not for= both toast and non toast I believe=C2=A0

1) Did you vacuum?
2) What'= ;s the fillfactor?

--
Death to <Redacted>, and butter sauce.
Don't boil me, I'= ;m still alive.
<Redacted> lobster!

@Ron=C2=A0
Hi=C2=A0
1) vacuum runs daily once and autovacuum triggers for every 1 hour= =C2=A0
2) 80

Regards
Durga Mahesh
--0000000000004e8960064a83f1b4--