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