view bc is just a joining wrapper around pg_buffercache. regression=# select datname, relname, count(*), sum(count(*)) over () AS total from bc where isdirty group by datname, relname; datname | relname | count | total ---------+---------+-------+------- (0 rows)
regression=# update tenk1 set stringu1 = stringu1 || '' where (unique1 % 384) = 3; UPDATE 27 regression=# select datname, relname, count(*), sum(count(*)) over () AS total from bc where isdirty group by datname, relname; datname | relname | count | total ------------+---------+-------+------- regression | tenk1 | 3 | 3 (1 row) regression=# checkpoint; CHECKPOINT 2022-04-19 23:17:08.256 UTC [161084] LOG: checkpoint starting: immediate force wait 2022-04-19 23:17:08.264 UTC [161084] LOG: checkpoint complete: wrote 4 buffers (0.0%); 0 WAL file(s) added, 0 removed, 0 recycled; write=0.002 s, sync=0.002 s, total=0.009 s; sync files=2, longest=0.002 s, average=0.001 s; distance=12 kB, estimate=72358 kB I've done this four times in a row and while the number of dirty buffers shown each time vary (see below) I see that "wrote N buffers" is always exactly one more than the total count of dirty buffers. I'm just curious if anyone has a quick answer for this unusual correspondence. David J. regression=# update tenk1 set stringu1 = stringu1 || '' where (unique1 % 384) = 3; UPDATE 27 regression=# select datname, relname, count(*), sum(count(*)) over () AS total from bc where isdirty group by datname, relname; datname | relname | count | total ------------+----------------------+-------+------- regression | tenk1 | 33 | 102 regression | tenk1_hundred | 9 | 102 regression | tenk1_thous_tenthous | 18 | 102 regression | tenk1_unique1 | 27 | 102 regression | tenk1_unique2 | 15 | 102 (5 rows) 2022-04-19 23:13:03.480 UTC [161084] LOG: checkpoint starting: immediate force wait 2022-04-19 23:13:03.523 UTC [161084] LOG: checkpoint complete: wrote 103 buffers (0.6%); 0 WAL file(s) added, 0 removed, 0 recycled; write=0.004 s, sync=0.014 s, total=0.044 s; sync files=8, longest=0.008 s, average=0.002 s; distance=721 kB, estimate=110165 kB