created pg_buffercache extension:
CREATE EXTENSION pg_buffercache;

restarted server and updated statistic for table :
VACUUM ANALYZE public.my_table;

then just tried to cache table in buffer:
SELECT * FROM public.my_table;

and then tried to get table total page quantity and how much pages are
cached in buffer for this table:
SELECT
(SELECT relpages FROM pg_class where oid = 'public.my_table'::regclass::oid
) AS table_pages_quantity_total,
(SELECT COUNT(DISTINCT relblocknumber) FROM pg_buffercache WHERE
relfilenode = (
SELECT relfilenode FROM pg_class WHERE oid =
'public.my_table'::regclass::oid -- (SELECT rel_oid FROM my_cte)
) ) AS table_pages_quantity_in_cache;


 This shows that table have only one page, while second column shows 3
unique pages in buffer cache. Seems I'm measuring those numbers
incorrectly(?) can you please help, which column is incorrect (or may be
both) ?

Reply via email to