explain.depesz.com

PostgreSQL's explain analyze made readable

Result: ClFn : stuff

Settings
# exclusive inclusive rows x rows loops node
1. 0.083 267.279 ↓ 4.0 4 1

Sort (cost=856.17..856.18 rows=1 width=36) (actual time=267.244..267.279 rows=4 loops=1)

  • Sort Key: g_oc.date_g
  • Sort Method: quicksort Memory: 25kB
2. 0.102 267.196 ↓ 4.0 4 1

Nested Loop (cost=13.68..856.16 rows=1 width=36) (actual time=20.670..267.196 rows=4 loops=1)

3. 0.126 267.038 ↓ 4.0 4 1

Nested Loop (cost=13.53..847.97 rows=1 width=130) (actual time=20.629..267.038 rows=4 loops=1)

4. 0.132 266.828 ↓ 4.0 4 1

Nested Loop (cost=13.38..839.79 rows=1 width=32) (actual time=20.591..266.828 rows=4 loops=1)

5. 0.132 266.604 ↓ 4.0 4 1

Nested Loop (cost=13.38..839.72 rows=1 width=76) (actual time=20.551..266.604 rows=4 loops=1)

6. 0.134 266.380 ↓ 4.0 4 1

Nested Loop (cost=13.37..839.65 rows=1 width=96) (actual time=20.511..266.380 rows=4 loops=1)

7. 0.094 266.154 ↓ 4.0 4 1

Nested Loop (cost=13.37..839.58 rows=1 width=140) (actual time=20.471..266.154 rows=4 loops=1)

8. 145.061 263.958 ↑ 1.0 1 1

Hash Join (cost=8.32..577.24 rows=1 width=8) (actual time=19.835..263.958 rows=1 loops=1)

  • Hash Cond: ((lower(btrim((t_master.name)::text)) = lower(btrim((t_oc.name_t)::text))) AND (t_master.start_date = t_oc.date_t))
9. 118.795 118.795 ↑ 1.0 15,614 1

Seq Scan on tournament_atp t_master (cost=0.00..479.14 rows=15,614 width=28) (actual time=0.018..118.795 rows=15,614 loops=1)

10. 0.034 0.102 ↑ 1.0 1 1

Hash (cost=8.30..8.30 rows=1 width=28) (actual time=0.095..0.102 rows=1 loops=1)

  • Buckets: 1024 Batches: 1 Memory Usage: 9kB
11. 0.068 0.068 ↑ 1.0 1 1

Index Scan using tours_atp_pkey on tours_atp t_oc (cost=0.29..8.30 rows=1 width=28) (actual time=0.053..0.068 rows=1 loops=1)

  • Index Cond: (id_t = 1114)
12. 0.136 2.102 ↓ 4.0 4 1

Nested Loop (cost=5.05..262.33 rows=1 width=136) (actual time=0.600..2.102 rows=4 loops=1)

13. 0.136 1.866 ↓ 4.0 4 1

Nested Loop (cost=5.05..262.21 rows=1 width=112) (actual time=0.557..1.866 rows=4 loops=1)

14. 0.135 1.630 ↓ 4.0 4 1

Nested Loop (cost=5.04..262.09 rows=1 width=88) (actual time=0.513..1.630 rows=4 loops=1)

15. 0.101 1.367 ↓ 4.0 4 1

Nested Loop (cost=5.03..261.97 rows=1 width=64) (actual time=0.441..1.367 rows=4 loops=1)

16. 0.130 1.210 ↓ 4.0 4 1

Nested Loop (cost=4.74..253.65 rows=1 width=44) (actual time=0.404..1.210 rows=4 loops=1)

17. 0.138 0.956 ↓ 1.3 4 1

Nested Loop (cost=4.74..253.44 rows=3 width=64) (actual time=0.337..0.956 rows=4 loops=1)

18. 0.102 0.718 ↓ 1.3 4 1

Nested Loop (cost=4.73..253.08 rows=3 width=40) (actual time=0.291..0.718 rows=4 loops=1)

19. 0.460 0.488 ↑ 1.0 4 1

Bitmap Heap Scan on games_atp g_oc (cost=4.44..219.83 rows=4 width=20) (actual time=0.206..0.488 rows=4 loops=1)

  • Recheck Cond: (id_t_g = 1114)
  • Filter: ((date_g IS NULL) AND (id_r_g = 9))
  • Rows Removed by Filter: 66
  • Heap Blocks: exact=48
20. 0.028 0.028 ↓ 1.2 70 1

Bitmap Index Scan on idx_oc_games_atp_id_t_g (cost=0.00..4.43 rows=58 width=0) (actual time=0.021..0.028 rows=70 loops=1)

  • Index Cond: (id_t_g = 1114)
21. 0.128 0.128 ↑ 1.0 1 4

Index Scan using players_atp_pkey on players_atp p1_oc (cost=0.29..8.31 rows=1 width=28) (actual time=0.030..0.032 rows=1 loops=4)

  • Index Cond: (id_p = g_oc.id1_g)
  • Filter: ((name_p)::text ~~ '%/%'::text)
22. 0.100 0.100 ↑ 1.0 1 4

Index Scan using idx_oc_lower_player_name_atp on players_atp p1a_oc (cost=0.01..0.11 rows=1 width=24) (actual time=0.015..0.025 rows=1 loops=4)

  • Index Cond: (lower((name_p)::text) = lower(btrim(split_part((p1_oc.name_p)::text, '/'::text, 1))))
23. 0.124 0.124 ↑ 1.0 1 4

Index Scan using idx_master_lower_player_name_atp on player_atp p1a_master (cost=0.00..0.06 rows=1 width=20) (actual time=0.020..0.031 rows=1 loops=4)

  • Index Cond: (lower((name)::text) = lower((p1a_oc.name_p)::text))
24. 0.056 0.056 ↑ 1.0 1 4

Index Scan using players_atp_pkey on players_atp p2_oc (cost=0.29..8.31 rows=1 width=28) (actual time=0.012..0.014 rows=1 loops=4)

  • Index Cond: (id_p = g_oc.id2_g)
  • Filter: ((name_p)::text ~~ '%/%'::text)
25. 0.128 0.128 ↑ 1.0 1 4

Index Scan using idx_oc_lower_player_name_atp on players_atp p1b_oc (cost=0.01..0.11 rows=1 width=24) (actual time=0.022..0.032 rows=1 loops=4)

  • Index Cond: (lower((name_p)::text) = lower(btrim(split_part((p1_oc.name_p)::text, '/'::text, 2))))
26. 0.100 0.100 ↑ 1.0 1 4

Index Scan using idx_oc_lower_player_name_atp on players_atp p2a_oc (cost=0.01..0.11 rows=1 width=24) (actual time=0.015..0.025 rows=1 loops=4)

  • Index Cond: (lower((name_p)::text) = lower(btrim(split_part((p2_oc.name_p)::text, '/'::text, 1))))
27. 0.100 0.100 ↑ 1.0 1 4

Index Scan using idx_oc_lower_player_name_atp on players_atp p2b_oc (cost=0.01..0.11 rows=1 width=24) (actual time=0.015..0.025 rows=1 loops=4)

  • Index Cond: (lower((name_p)::text) = lower(btrim(split_part((p2_oc.name_p)::text, '/'::text, 2))))
28. 0.092 0.092 ↑ 1.0 1 4

Index Scan using idx_master_lower_player_name_atp on player_atp p1b_master (cost=0.00..0.06 rows=1 width=20) (actual time=0.013..0.023 rows=1 loops=4)

  • Index Cond: (lower((name)::text) = lower((p1b_oc.name_p)::text))
29. 0.092 0.092 ↑ 1.0 1 4

Index Scan using idx_master_lower_player_name_atp on player_atp p2a_master (cost=0.00..0.06 rows=1 width=20) (actual time=0.013..0.023 rows=1 loops=4)

  • Index Cond: (lower((name)::text) = lower((p2a_oc.name_p)::text))
30. 0.092 0.092 ↑ 1.0 1 4

Index Scan using idx_master_lower_player_name_atp on player_atp p2b_master (cost=0.00..0.06 rows=1 width=20) (actual time=0.013..0.023 rows=1 loops=4)

  • Index Cond: (lower((name)::text) = lower((p2b_oc.name_p)::text))
31. 0.084 0.084 ↑ 1.0 1 4

Index Scan using rounds_pkey on rounds r_oc (cost=0.15..8.17 rows=1 width=102) (actual time=0.011..0.021 rows=1 loops=4)

  • Index Cond: (id_r = 9)
32. 0.056 0.056 ↑ 1.0 1 4

Index Scan using rounds_name_key on rounds r_master (cost=0.15..8.17 rows=1 width=102) (actual time=0.012..0.014 rows=1 loops=4)

  • Index Cond: ((name)::text = (r_oc.name_r)::text)