explain.depesz.com

PostgreSQL's explain analyze made readable

Result: ItEN : Optimization for: plan #Qr9d

Settings

Optimization path:

# exclusive inclusive rows x rows loops node
1. 0.000 0.000 ↓ 0.0

Aggregate (cost=34.88..34.89 rows=1 width=8) (actual rows= loops=)

2. 0.000 0.000 ↓ 0.0

Nested Loop (cost=5.03..34.84 rows=16 width=0) (actual rows= loops=)

3. 0.000 0.000 ↓ 0.0

Nested Loop (cost=4.61..29.97 rows=1 width=48) (actual rows= loops=)

  • Join Filter: (cl.cluster_id = s.cluster_id)
4. 0.000 0.000 ↓ 0.0

Nested Loop (cost=4.46..22.16 rows=4 width=80) (actual rows= loops=)

5. 0.000 0.000 ↓ 0.0

Nested Loop (cost=0.00..2.03 rows=1 width=20) (actual rows= loops=)

  • Join Filter: (o.organisation_id = cl.organisation_id)
6. 0.000 0.000 ↓ 0.0

Seq Scan on organisation o (cost=0.00..1.01 rows=1 width=14) (actual rows= loops=)

7. 0.000 0.000 ↓ 0.0

Seq Scan on cluster cl (cost=0.00..1.01 rows=1 width=22) (actual rows= loops=)

8. 0.000 0.000 ↓ 0.0

Bitmap Heap Scan on temp_session_customer tsc (cost=4.46..20.09 rows=4 width=136) (actual rows= loops=)

  • Recheck Cond: (((organisation_key)::text = (o.organisation_key)::text) AND ((cluster_key)::text = (cl.cluster_key)::text))
9. 0.000 0.000 ↓ 0.0

Bitmap Index Scan on temp_session_customer_pk (cost=0.00..4.46 rows=4 width=0) (actual rows= loops=)

  • Index Cond: (((organisation_key)::text = (o.organisation_key)::text) AND ((cluster_key)::text = (cl.cluster_key)::text))
10. 0.000 0.000 ↓ 0.0

Append (cost=0.15..1.88 rows=6 width=56) (actual rows= loops=)

11. 0.000 0.000 ↓ 0.0

Index Scan using session_2020_03_session_time_market_id_idx on session_2020_03 s (cost=0.15..0.18 rows=1 width=56) (actual rows= loops=)

  • Index Cond: (session_time = tsc.session_time)
  • Filter: (((tsc.session_key)::text = (session_key)::text) AND ((tsc.session_time)::date = partition_date))
12. 0.000 0.000 ↓ 0.0

Index Scan using session_2020_04_session_time_market_id_idx on session_2020_04 s_1 (cost=0.42..0.57 rows=1 width=56) (actual rows= loops=)

  • Index Cond: (session_time = tsc.session_time)
  • Filter: (((tsc.session_key)::text = (session_key)::text) AND ((tsc.session_time)::date = partition_date))
13. 0.000 0.000 ↓ 0.0

Index Scan using session_2020_05_session_time_market_id_idx on session_2020_05 s_2 (cost=0.29..0.35 rows=1 width=56) (actual rows= loops=)

  • Index Cond: (session_time = tsc.session_time)
  • Filter: (((tsc.session_key)::text = (session_key)::text) AND ((tsc.session_time)::date = partition_date))
14. 0.000 0.000 ↓ 0.0

Index Scan using session_2020_06_session_time_market_id_idx on session_2020_06 s_3 (cost=0.15..0.25 rows=1 width=52) (actual rows= loops=)

  • Index Cond: (session_time = tsc.session_time)
  • Filter: (((tsc.session_key)::text = (session_key)::text) AND ((tsc.session_time)::date = partition_date))
15. 0.000 0.000 ↓ 0.0

Index Scan using session_2020_07_session_time_market_id_idx on session_2020_07 s_4 (cost=0.15..0.25 rows=1 width=52) (actual rows= loops=)

  • Index Cond: (session_time = tsc.session_time)
  • Filter: (((tsc.session_key)::text = (session_key)::text) AND ((tsc.session_time)::date = partition_date))
16. 0.000 0.000 ↓ 0.0

Index Scan using session_2020_08_session_time_market_id_idx on session_2020_08 s_5 (cost=0.15..0.25 rows=1 width=52) (actual rows= loops=)

  • Index Cond: (session_time = tsc.session_time)
  • Filter: (((tsc.session_key)::text = (session_key)::text) AND ((tsc.session_time)::date = partition_date))
17. 0.000 0.000 ↓ 0.0

Append (cost=0.41..4.77 rows=10 width=45) (actual rows= loops=)

  • -> Index Only Scan using customer_key_mod_9_cluster_id_customer_key_customer_key_id_idx on customer_key_mod_9 ck_9 (cost=0.41..0.47 rows=1 width=45)" Index Cond: ((cluster_id = s.cluster_id) AND (customer_key = (tsc.customer_key)::text))
18. 0.000 0.000 ↓ 0.0

Index Only Scan using customer_key_mod_0_cluster_id_customer_key_customer_key_id_idx on customer_key_mod_0 ck (cost=0.41..0.47 rows=1 width=45) (actual rows= loops=)

  • Index Cond: ((cluster_id = s.cluster_id) AND (customer_key = (tsc.customer_key)::text))
19. 0.000 0.000 ↓ 0.0

Index Only Scan using customer_key_mod_1_cluster_id_customer_key_customer_key_id_idx on customer_key_mod_1 ck_1 (cost=0.41..0.47 rows=1 width=45) (actual rows= loops=)

  • Index Cond: ((cluster_id = s.cluster_id) AND (customer_key = (tsc.customer_key)::text))
20. 0.000 0.000 ↓ 0.0

Index Only Scan using customer_key_mod_2_cluster_id_customer_key_customer_key_id_idx on customer_key_mod_2 ck_2 (cost=0.41..0.47 rows=1 width=45) (actual rows= loops=)

  • Index Cond: ((cluster_id = s.cluster_id) AND (customer_key = (tsc.customer_key)::text))
21. 0.000 0.000 ↓ 0.0

Index Only Scan using customer_key_mod_3_cluster_id_customer_key_customer_key_id_idx on customer_key_mod_3 ck_3 (cost=0.41..0.47 rows=1 width=45) (actual rows= loops=)

  • Index Cond: ((cluster_id = s.cluster_id) AND (customer_key = (tsc.customer_key)::text))
22. 0.000 0.000 ↓ 0.0

Index Only Scan using customer_key_mod_4_cluster_id_customer_key_customer_key_id_idx on customer_key_mod_4 ck_4 (cost=0.41..0.47 rows=1 width=45) (actual rows= loops=)

  • Index Cond: ((cluster_id = s.cluster_id) AND (customer_key = (tsc.customer_key)::text))
23. 0.000 0.000 ↓ 0.0

Index Only Scan using customer_key_mod_5_cluster_id_customer_key_customer_key_id_idx on customer_key_mod_5 ck_5 (cost=0.41..0.47 rows=1 width=45) (actual rows= loops=)

  • Index Cond: ((cluster_id = s.cluster_id) AND (customer_key = (tsc.customer_key)::text))
24. 0.000 0.000 ↓ 0.0

Index Only Scan using customer_key_mod_6_cluster_id_customer_key_customer_key_id_idx on customer_key_mod_6 ck_6 (cost=0.42..0.47 rows=1 width=45) (actual rows= loops=)

  • Index Cond: ((cluster_id = s.cluster_id) AND (customer_key = (tsc.customer_key)::text))
25. 0.000 0.000 ↓ 0.0

Index Only Scan using customer_key_mod_7_cluster_id_customer_key_customer_key_id_idx on customer_key_mod_7 ck_7 (cost=0.41..0.47 rows=1 width=45) (actual rows= loops=)

  • Index Cond: ((cluster_id = s.cluster_id) AND (customer_key = (tsc.customer_key)::text))
26. 0.000 0.000 ↓ 0.0

Index Only Scan using customer_key_mod_8_cluster_id_customer_key_customer_key_id_idx on customer_key_mod_8 ck_8 (cost=0.41..0.47 rows=1 width=45) (actual rows= loops=)

  • Index Cond: ((cluster_id = s.cluster_id) AND (customer_key = (tsc.customer_key)::text))