explain.depesz.com

PostgreSQL's explain analyze made readable

Result: v4y7 : Optimization for: plan #EPL7

Settings

Optimization path:

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

Sort (cost=1,281.440..1,281.510 rows=28 width=172) (actual rows= loops=)

  • Sort Key: "india".echo_kilo DESC oscar papa_zulu
2. 0.000 0.000 ↓ 0.0

Append (cost=45.490..1,280.760 rows=28 width=172) (actual rows= loops=)

3. 0.000 0.000 ↓ 0.0

Subquery Scan on victor (cost=45.490..433.350 rows=10 width=172) (actual rows= loops=)

4. 0.000 0.000 ↓ 0.0

HashAggregate (cost=45.490..433.250 rows=10 width=147) (actual rows= loops=)

  • Group Key: lima_november.quebec, alpha_november.quebec
5. 0.000 0.000 ↓ 0.0

Nested Loop Left Join (cost=25.960..45.310 rows=10 width=147) (actual rows= loops=)

6. 0.000 0.000 ↓ 0.0

Hash Join (cost=25.810..42.510 rows=10 width=147) (actual rows= loops=)

  • Hash Cond: (four_uniform.zulu_lima = lima_november.quebec)
7. 0.000 0.000 ↓ 0.0

Seq Scan on four_uniform (cost=0.000..14.800 rows=480 width=24) (actual rows= loops=)

8. 0.000 0.000 ↓ 0.0

Hash (cost=25.760..25.760 rows=4 width=131) (actual rows= loops=)

9. 0.000 0.000 ↓ 0.0

Nested Loop (cost=0.150..25.760 rows=4 width=131) (actual rows= loops=)

10. 0.000 0.000 ↓ 0.0

Seq Scan on lima_november (cost=0.000..1.040 rows=4 width=99) (actual rows= loops=)

11. 0.000 0.000 ↓ 0.0

Index Scan using november on alpha_november (cost=0.150..6.170 rows=1 width=40) (actual rows= loops=)

  • Index Cond: (quebec = lima_november.whiskey_november)
12. 0.000 0.000 ↓ 0.0

Index Scan using four_five on delta (cost=0.150..0.270 rows=1 width=12) (actual rows= loops=)

  • Index Cond: ((three_lima = four_uniform.quebec) AND ((whiskey_foxtrot)::text = 'three_juliet'::text))
13.          

SubPlan (forHashAggregate)

14. 0.000 0.000 ↓ 0.0

Aggregate (cost=25.060..25.070 rows=1 width=0) (actual rows= loops=)

15. 0.000 0.000 ↓ 0.0

HashAggregate (cost=25.030..25.040 rows=1 width=16) (actual rows= loops=)

  • Group Key: foxtrot_juliet.zulu_lima
  • Filter: (five_two(four_uniform.quebec) = five_two(foxtrot_juliet.foxtrot_delta))
16. 0.000 0.000 ↓ 0.0

Seq Scan on foxtrot_juliet (cost=0.000..25.000 rows=6 width=16) (actual rows= loops=)

  • Filter: (mike(four_uniform.quebec) @> ARRAY[foxtrot_delta])
17. 0.000 0.000 ↓ 0.0

Aggregate (cost=13.680..13.700 rows=1 width=8) (actual rows= loops=)

18. 0.000 0.000 ↓ 0.0

Bitmap Heap Scan on foxtrot_juliet two_quebec (cost=4.200..13.680 rows=1 width=8) (actual rows= loops=)

  • Recheck Cond: (zulu_lima = 2)
  • Filter: (mike(four_uniform.quebec) @> ARRAY[foxtrot_delta])
19. 0.000 0.000 ↓ 0.0

Bitmap Index Scan on five_four (cost=0.000..4.200 rows=6 width=0) (actual rows= loops=)

  • Index Cond: (zulu_lima = 2)
20. 0.000 0.000 ↓ 0.0

Subquery Scan on echo_uniform (cost=52.630..847.420 rows=18 width=172) (actual rows= loops=)

21. 0.000 0.000 ↓ 0.0

HashAggregate (cost=52.630..847.240 rows=18 width=147) (actual rows= loops=)

  • Group Key: zulu_seven1.quebec, xray1.quebec
22. 0.000 0.000 ↓ 0.0

Nested Loop Left Join (cost=25.960..52.310 rows=18 width=147) (actual rows= loops=)

23. 0.000 0.000 ↓ 0.0

Hash Join (cost=25.810..48.090 rows=18 width=147) (actual rows= loops=)

  • Hash Cond: (alpha_kilo.zulu_lima = zulu_seven1.quebec)
24. 0.000 0.000 ↓ 0.0

Seq Scan on alpha_kilo (cost=0.000..18.800 rows=880 width=24) (actual rows= loops=)

25. 0.000 0.000 ↓ 0.0

Hash (cost=25.760..25.760 rows=4 width=131) (actual rows= loops=)

26. 0.000 0.000 ↓ 0.0

Nested Loop (cost=0.150..25.760 rows=4 width=131) (actual rows= loops=)

27. 0.000 0.000 ↓ 0.0

Seq Scan on lima_november lima_bravo (cost=0.000..1.040 rows=4 width=99) (actual rows= loops=)

28. 0.000 0.000 ↓ 0.0

Index Scan using november on alpha_november kilo (cost=0.150..6.170 rows=1 width=40) (actual rows= loops=)

  • Index Cond: (quebec = zulu_seven1.whiskey_november)
29. 0.000 0.000 ↓ 0.0

Index Scan using four_five on delta golf (cost=0.150..0.220 rows=1 width=12) (actual rows= loops=)

  • Index Cond: ((three_lima = alpha_kilo.quebec) AND ((whiskey_foxtrot)::text = 'papa_india'::text))
30.          

SubPlan (forHashAggregate)

31. 0.000 0.000 ↓ 0.0

Aggregate (cost=29.710..29.720 rows=1 width=0) (actual rows= loops=)

32. 0.000 0.000 ↓ 0.0

HashAggregate (cost=29.660..29.690 rows=2 width=16) (actual rows= loops=)

  • Group Key: two_two.zulu_lima
  • Filter: (five_two(alpha_kilo.quebec) = five_two(two_two.bravo))
33. 0.000 0.000 ↓ 0.0

Seq Scan on two_two (cost=0.000..29.620 rows=8 width=16) (actual rows= loops=)

  • Filter: (mike(alpha_kilo.quebec) @> ARRAY[bravo])
34. 0.000 0.000 ↓ 0.0

Aggregate (cost=14.390..14.410 rows=1 width=8) (actual rows= loops=)

35. 0.000 0.000 ↓ 0.0

Bitmap Heap Scan on two_two echo_tango (cost=4.210..14.390 rows=1 width=8) (actual rows= loops=)

  • Recheck Cond: (zulu_lima = 2)
  • Filter: (mike(alpha_kilo.quebec) @> ARRAY[bravo])
36. 0.000 0.000 ↓ 0.0

Bitmap Index Scan on three_quebec (cost=0.000..4.210 rows=8 width=0) (actual rows= loops=)

  • Index Cond: (zulu_lima = 2)