explain.depesz.com

PostgreSQL's explain analyze made readable

Result: X2B5

Settings
# exclusive inclusive rows x rows loops node
1. 30.172 1,309.297 ↑ 54,029,604.9 14,089 1

Nested Loop (cost=0.00..9,495,651,607.06 rows=761,223,103,246 width=136) (actual time=0.422..1,309.297 rows=14,089 loops=1)

  • Join Filter: (((stats_session.created_at >= '2019-04-01 00:00:00+00'::timestamp with time zone) AND (stats_session.created_at <= '2019-04-02 23:59:59+00'::timestamp with time zone) AND (stats_page_view.created_at >= '2019-04-01 00:00:00+00'::timestamp with time zone) AND (stats_page_view.created_at <= '2019-04-02 23:59:59+00'::timestamp with time zone) AND (stats_event.created_at >= '2019-04-01 00:00:00+00'::timestamp with time zone) AND (stats_event.created_at <= '2019-04-02 23:59:59+00'::timestamp with time zone) AND ((stats_session.property_id)::numeric = '1'::numeric) AND ((stats_page_view.property_id)::numeric = '1'::numeric) AND ((stats_event.property_id)::numeric = '1'::numeric) AND ((stats_session.campaign_id)::numeric >= '1'::numeric)) OR (((stats_event."values" ->> 'scrollTriggerValue'::text))::numeric <= '100'::numeric))
2. 5.021 1,236.858 ↑ 240,138.2 14,089 1

Nested Loop (cost=0.00..985,754.04 rows=3,383,307,768 width=112) (actual time=0.401..1,236.858 rows=14,089 loops=1)

3. 1.408 1,175.481 ↑ 106.7 14,089 1

Append (cost=0.00..262,671.21 rows=1,503,689 width=80) (actual time=0.381..1,175.481 rows=14,089 loops=1)

4. 0.004 0.004 ↓ 0.0 0 1

Seq Scan on stats_event (cost=0.00..0.00 rows=1 width=80) (actual time=0.004..0.004 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)::numeric = '1'::numeric)) OR ((("values" ->> 'scrollTriggerValue'::text))::numeric <= '100'::numeric))
5. 1,174.069 1,174.069 ↑ 106.7 14,089 1

Seq Scan on _hyper_5_4_chunk (cost=0.00..255,152.76 rows=1,503,688 width=80) (actual time=0.377..1,174.069 rows=14,089 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)::numeric = '1'::numeric)) OR ((("values" ->> 'scrollTriggerValue'::text))::numeric <= '100'::numeric))
  • Rows Removed by Filter: 4485910
6. 28.178 56.356 ↑ 2.0 1 14,089

Append (cost=0.00..0.46 rows=2 width=48) (actual time=0.004..0.004 rows=1 loops=14,089)

7. 0.000 0.000 ↓ 0.0 0 14,089

Seq Scan on stats_page_view (cost=0.00..0.00 rows=1 width=48) (actual time=0.000..0.000 rows=0 loops=14,089)

  • Filter: (stats_event.page_view_id = id)
8. 28.178 28.178 ↑ 1.0 1 14,089

Index Scan using "3_3_stats_page_view_id" on _hyper_3_3_chunk (cost=0.42..0.45 rows=1 width=48) (actual time=0.002..0.002 rows=1 loops=14,089)

  • Index Cond: (id = stats_event.page_view_id)
9. 14.089 42.267 ↑ 2.0 1 14,089

Append (cost=0.00..0.45 rows=2 width=56) (actual time=0.003..0.003 rows=1 loops=14,089)

10. 0.000 0.000 ↓ 0.0 0 14,089

Seq Scan on stats_session (cost=0.00..0.00 rows=1 width=266) (actual time=0.000..0.000 rows=0 loops=14,089)

  • Filter: (stats_page_view.session_id = id)
11. 28.178 28.178 ↑ 1.0 1 14,089

Index Scan using "2_2_stats_session_id" on _hyper_2_2_chunk (cost=0.41..0.44 rows=1 width=56) (actual time=0.002..0.002 rows=1 loops=14,089)

  • Index Cond: (id = stats_page_view.session_id)