bufcache.out
text/plain
CREATE EXTENSION pg_buffercache;
WITH usage AS (
SELECT usagecount, COUNT(*) AS page_count
FROM pg_buffercache
GROUP BY 1
ORDER BY 1 DESC NULLS LAST
)
SELECT usagecount, page_count, (100 * page_count / SUM(page_count) OVER())::numeric(4,2)
FROM usage;
usagecount | page_count | numeric
------------+------------+---------
5 | 100 | 2.44
4 | 23 | 0.56
3 | 16 | 0.39
2 | 46 | 1.12
1 | 630 | 15.38
| 3281 | 80.10
(6 rows)
DROP TABLE IF EXISTS test;
DROP TABLE
CREATE TABLE test (x) AS SELECT random() FROM generate_series(1, 10000000);
SELECT 10000000
\dt+
List of relations
Schema | Name | Type | Owner | Size | Description
--------+------+-------+----------+--------+-------------
public | test | table | postgres | 346 MB |
(1 row)
SHOW shared_buffers;
shared_buffers
----------------
32MB
(1 row)
WITH usage AS (
SELECT usagecount, COUNT(*) AS page_count
FROM pg_buffercache
GROUP BY 1
ORDER BY 1 DESC NULLS LAST
)
SELECT usagecount, page_count, (100 * page_count / SUM(page_count) OVER())::numeric(4,2)
FROM usage;
usagecount | page_count | numeric
------------+------------+---------
5 | 119 | 2.91
4 | 27 | 0.66
3 | 14 | 0.34
2 | 62 | 1.51
1 | 529 | 12.92
| 3345 | 81.67
(6 rows)
SELECT * FROM test ORDER BY 1 LIMIT 1;
x
----------------------
1.30385160446167e-08
(1 row)
WITH usage AS (
SELECT usagecount, COUNT(*) AS page_count
FROM pg_buffercache
GROUP BY 1
ORDER BY 1 DESC NULLS LAST
)
SELECT usagecount, page_count, (100 * page_count / SUM(page_count) OVER())::numeric(4,2)
FROM usage;
usagecount | page_count | numeric
------------+------------+---------
5 | 119 | 2.91
4 | 28 | 0.68
3 | 13 | 0.32
2 | 63 | 1.54
1 | 560 | 13.67
| 3313 | 80.88
(6 rows)
UPDATE test SET x = x + 1;
UPDATE 10000000
WITH usage AS (
SELECT usagecount, COUNT(*) AS page_count
FROM pg_buffercache
GROUP BY 1
ORDER BY 1 DESC NULLS LAST
)
SELECT usagecount, page_count, (100 * page_count / SUM(page_count) OVER())::numeric(4,2)
FROM usage;
usagecount | page_count | numeric
------------+------------+---------
5 | 633 | 15.45
4 | 399 | 9.74
3 | 632 | 15.43
2 | 384 | 9.38
1 | 1282 | 31.30
0 | 766 | 18.70
(6 rows)