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) ?