Hi

I am testing some features from Postgres 13, and I am not sure if I
understand well to behave of EXPLAIN(ANALYZE, BUFFERS)

When I run following statement first time in session I get

postgres=# EXPLAIN (BUFFERS, ANALYZE) SELECT * FROM obce WHERE okres_id =
'CZ0201';
┌──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
│                                                          QUERY PLAN
                                                   │
╞══════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════╡
│ Index Scan using obce_okres_id_idx on obce  (cost=0.28..14.49 rows=114
width=41) (actual time=0.072..0.168 rows=114 loops=1) │
│   Index Cond: ((okres_id)::text = 'CZ0201'::text)
                                                   │
│   Buffers: shared hit=4
                                                   │
│ Planning Time: 0.539 ms
                                                   │
│   Buffers: shared hit=13
                                                    │
│ Execution Time: 0.287 ms
                                                    │
└──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
(6 rows)

And I see share hit 13 in planning time.

For second run I get

postgres=# EXPLAIN (BUFFERS, ANALYZE) SELECT * FROM obce WHERE okres_id =
'CZ0201';
┌──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
│                                                          QUERY PLAN
                                                   │
╞══════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════╡
│ Index Scan using obce_okres_id_idx on obce  (cost=0.28..14.49 rows=114
width=41) (actual time=0.044..0.101 rows=114 loops=1) │
│   Index Cond: ((okres_id)::text = 'CZ0201'::text)
                                                   │
│   Buffers: shared hit=4
                                                   │
│ Planning Time: 0.159 ms
                                                   │
│ Execution Time: 0.155 ms
                                                    │
└──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
(5 rows)

Now, there is not any touch in planning time. Does it mean so this all
these data are cached somewhere in session memory?

Regards

Pavel

Reply via email to