April 2018
Intermediate to advanced
508 pages
15h 22m
English
These examples should have proven to you that looking at the counts of blocks hit and read is valuable for determining whether a query plan is really being executed correctly or not. PostgreSQL 9.0 adds a feature to make this easier than before. Instead of looking at the pg_stat* data as done in the previous example, you can request a count of buffers accessed directly when running EXPLAIN:
EXPLAIN (ANALYZE ON, BUFFERS ON) SELECT count(*) FROM t WHERE v=5;
QUERY PLAN
----------
Aggregate (cost=332.92..332.93 rows=1 width=0) (actual time=39.132..39.134 rows=1 loops=1)
Buffers: shared hit=46 read=23
-> Index Scan using i on t (cost=0.00..308.21 rows=9883 width=0) (actual time=0.069..21.843 rows=9993 loops=1)
Read now
Unlock full access