explain.depesz.com

PostgreSQL's explain analyze made readable

Result: u2O5

Settings
# exclusive inclusive rows x rows loops node
1. 16.608 33.738 ↑ 4.2 12,781 1

Hash Join (cost=1,370.38..17,346.89 rows=54,121 width=646) (actual time=2.402..33.738 rows=12,781 loops=1)

  • Hash Cond: (stats_event.page_view_id = stats_page_view.id)
2. 3.077 14.820 ↑ 1.1 12,781 1

Hash Left Join (cost=10.68..13,515.71 rows=13,719 width=592) (actual time=0.072..14.820 rows=12,781 loops=1)

  • Hash Cond: (stats_event.event_id = event.id)
3. 1.402 11.730 ↑ 1.1 12,781 1

Append (cost=0.00..13,468.25 rows=13,719 width=76) (actual time=0.041..11.730 rows=12,781 loops=1)

4. 0.005 0.005 ↓ 0.0 0 1

Seq Scan on stats_event (cost=0.00..0.00 rows=1 width=76) (actual time=0.004..0.005 rows=0 loops=1)

  • Filter: ((created_at >= '2019-04-01 00:00:00+00'::timestamp with time zone) AND (created_at <= '2019-04-02 23:59:59+00'::timestamp with time zone) AND (property_id = 2))
5. 10.323 10.323 ↑ 1.1 12,781 1

Index Scan using _hyper_5_4_chunk_idx_event_property_id_and_created_at on _hyper_5_4_chunk (cost=0.43..13,399.66 rows=13,718 width=76) (actual time=0.036..10.323 rows=12,781 loops=1)

  • Index Cond: ((property_id = 2) AND (created_at >= '2019-04-01 00:00:00+00'::timestamp with time zone) AND (created_at <= '2019-04-02 23:59:59+00'::timestamp with time zone))
6. 0.005 0.013 ↑ 10.0 3 1

Hash (cost=10.30..10.30 rows=30 width=520) (actual time=0.012..0.013 rows=3 loops=1)

  • Buckets: 1024 Batches: 1 Memory Usage: 9kB
7. 0.008 0.008 ↑ 10.0 3 1

Seq Scan on event (cost=0.00..10.30 rows=30 width=520) (actual time=0.007..0.008 rows=3 loops=1)

8. 0.339 2.310 ↓ 1.6 1,279 1

Hash (cost=1,349.84..1,349.84 rows=789 width=70) (actual time=2.310..2.310 rows=1,279 loops=1)

  • Buckets: 2048 (originally 1024) Batches: 1 (originally 1) Memory Usage: 151kB
9. 0.483 1.971 ↓ 1.6 1,279 1

Hash Join (cost=129.41..1,349.84 rows=789 width=70) (actual time=0.397..1.971 rows=1,279 loops=1)

  • Hash Cond: (stats_page_view.session_id = stats_session.id)
10. 0.120 1.132 ↓ 1.0 1,279 1

Append (cost=0.00..1,207.95 rows=1,223 width=44) (actual time=0.031..1.132 rows=1,279 loops=1)

11. 0.001 0.001 ↓ 0.0 0 1

Seq Scan on stats_page_view (cost=0.00..0.00 rows=1 width=44) (actual time=0.001..0.001 rows=0 loops=1)

  • Filter: ((created_at >= '2019-04-01 00:00:00+00'::timestamp with time zone) AND (created_at <= '2019-04-02 23:59:59+00'::timestamp with time zone) AND (property_id = 2))
12. 1.011 1.011 ↓ 1.0 1,279 1

Index Scan using _hyper_3_3_chunk_idx_pageview_property_id_and_created_at on _hyper_3_3_chunk (cost=0.42..1,201.84 rows=1,222 width=44) (actual time=0.030..1.011 rows=1,279 loops=1)

  • Index Cond: ((property_id = 2) AND (created_at >= '2019-04-01 00:00:00+00'::timestamp with time zone) AND (created_at <= '2019-04-02 23:59:59+00'::timestamp with time zone))
13. 0.036 0.356 ↓ 1.0 130 1

Hash (cost=127.80..127.80 rows=129 width=42) (actual time=0.356..0.356 rows=130 loops=1)

  • Buckets: 1024 Batches: 1 Memory Usage: 18kB
14. 0.013 0.320 ↓ 1.0 130 1

Append (cost=0.00..127.80 rows=129 width=42) (actual time=0.019..0.320 rows=130 loops=1)

15. 0.001 0.001 ↓ 0.0 0 1

Seq Scan on stats_session (cost=0.00..0.00 rows=1 width=78) (actual time=0.001..0.001 rows=0 loops=1)

  • Filter: ((created_at >= '2019-04-01 00:00:00+00'::timestamp with time zone) AND (created_at <= '2019-04-02 23:59:59+00'::timestamp with time zone) AND (property_id = 2))
16. 0.306 0.306 ↓ 1.0 130 1

Index Scan using _hyper_2_2_chunk_idx_session_property_id_and_created_at on _hyper_2_2_chunk (cost=0.29..127.16 rows=128 width=42) (actual time=0.018..0.306 rows=130 loops=1)

  • Index Cond: ((property_id = 2) AND (created_at >= '2019-04-01 00:00:00+00'::timestamp with time zone) AND (created_at <= '2019-04-02 23:59:59+00'::timestamp with time zone))