explain.depesz.com

PostgreSQL's explain analyze made readable

Result: x0R

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

Result (cost=9,059.110..243,091,604.770 rows=2,795,883 width=505) (actual rows= loops=)

  • One-Time Filter: juliet_mike.juliet_india4foxtrot_mike8two_victor('india_seven'::character varying)
  • Functions: 177
  • Options: Inlining true, Optimization true, Expressions true, Deforming true
2. 0.000 0.000 ↓ 0.0

Nested Loop Left Join (cost=9,059.110..27,563,974.010 rows=2,795,883 width=326) (actual rows= loops=)

3. 0.000 0.000 ↓ 0.0

Hash Join (cost=9,050.530..4,176,412.460 rows=2,795,883 width=325) (actual rows= loops=)

  • Hash Cond: (whiskey_kilo.whiskey_alpha = charlie_alpha1.xray_romeo)
4. 0.000 0.000 ↓ 0.0

Hash Left Join (cost=9,018.750..4,076,438.300 rows=834,592 width=321) (actual rows= loops=)

  • Hash Cond: (four_bravo.quebec_seven = golf.delta_delta)
5. 0.000 0.000 ↓ 0.0

Hash Left Join (cost=9,017.710..4,073,307.140 rows=834,592 width=289) (actual rows= loops=)

  • Hash Cond: (four_bravo.quebec_seven = lima_romeo_mike.mike_charlie)
6. 0.000 0.000 ↓ 0.0

Hash Left Join (cost=1,241.190..4,063,339.370 rows=834,592 width=185) (actual rows= loops=)

  • Hash Cond: (four_bravo.lima_five = charlie_alpha2.xray_romeo)
7. 0.000 0.000 ↓ 0.0

Hash Left Join (cost=1,233.400..4,052,804.600 rows=834,592 width=185) (actual rows= loops=)

  • Hash Cond: (four_bravo.quebec_seven = echo_papa1.quebec_seven)
8. 0.000 0.000 ↓ 0.0

Merge Left Join (cost=75.040..4,049,454.990 rows=834,592 width=153) (actual rows= loops=)

  • Merge Cond: (whiskey_kilo.quebec_seven = mike_six2.four_quebec)
9. 0.000 0.000 ↓ 0.0

Merge Join (cost=74.350..4,045,245.380 rows=834,592 width=157) (actual rows= loops=)

  • Merge Cond: (four_bravo.two_oscar = whiskey_kilo.quebec_seven)
10. 0.000 0.000 ↓ 0.0

Index Scan using echo_six on four_bravo (cost=0.290..1,075.090 rows=20,766 width=52) (actual rows= loops=)

11. 0.000 0.000 ↓ 0.0

Materialize (cost=74.060..4,033,711.140 rows=843,755 width=105) (actual rows= loops=)

12. 0.000 0.000 ↓ 0.0

Merge Left Join (cost=74.060..4,031,601.750 rows=843,755 width=105) (actual rows= loops=)

  • Merge Cond: (whiskey_kilo.quebec_seven = mike_six1.four_quebec)
13. 0.000 0.000 ↓ 0.0

Index Scan using delta_quebec on two_oscar whiskey_kilo (cost=0.290..8,274.710 rows=20,994 width=85) (actual rows= loops=)

14. 0.000 0.000 ↓ 0.0

Materialize (cost=73.780..4,354,511.210 rows=843,755 width=28) (actual rows= loops=)

15. 0.000 0.000 ↓ 0.0

Nested Loop (cost=73.780..4,352,401.830 rows=843,755 width=28) (actual rows= loops=)

  • Join Filter: (juliet_india.quebec_seven = delta_yankee.four_three)
16. 0.000 0.000 ↓ 0.0

Nested Loop (cost=73.520..555,504.070 rows=168,751 width=44) (actual rows= loops=)

17. 0.000 0.000 ↓ 0.0

Index Scan using delta_quebec on two_oscar kilo_foxtrot (cost=0.290..8,274.710 rows=20,994 width=16) (actual rows= loops=)

18. 0.000 0.000 ↓ 0.0

Hash Join (cost=73.230..99.210 rows=8 width=36) (actual rows= loops=)

  • Hash Cond: (juliet_india.xray_romeo = mike_six1.uniform)
19. 0.000 0.000 ↓ 0.0

Seq Scan on papa juliet_india (cost=0.000..16.700 rows=670 width=117) (actual rows= loops=)

20. 0.000 0.000 ↓ 0.0

Hash (cost=73.210..73.210 rows=2 width=32) (actual rows= loops=)

21. 0.000 0.000 ↓ 0.0

Nested Loop Left Join (cost=46.890..73.210 rows=2 width=32) (actual rows= loops=)

22. 0.000 0.000 ↓ 0.0

Index Scan using alpha on kilo_india victor_yankee (cost=0.290..0.340 rows=1 width=36) (actual rows= loops=)

  • Index Cond: (four_quebec = kilo_foxtrot.quebec_seven)
23. 0.000 0.000 ↓ 0.0

Hash Right Join (cost=46.610..72.860 rows=1 width=8) (actual rows= loops=)

  • Hash Cond: (hotel_five.four_three = seven_papa.quebec_seven)
  • Filter: (seven_papa.xray_romeo = mike_six1.two_six)
24. 0.000 0.000 ↓ 0.0

Function Scan on victor_oscar hotel_five (cost=0.260..10.260 rows=1,000 width=4) (actual rows= loops=)

25. 0.000 0.000 ↓ 0.0

Hash (cost=43.140..43.140 rows=257 width=12) (actual rows= loops=)

26. 0.000 0.000 ↓ 0.0

Subquery Scan on seven_papa (cost=0.000..43.140 rows=257 width=12) (actual rows= loops=)

27. 0.000 0.000 ↓ 0.0

Seq Scan on charlie_three bravo (cost=0.000..40.570 rows=257 width=549) (actual rows= loops=)

28. 0.000 0.000 ↓ 0.0

Function Scan on delta_golf delta_yankee (cost=0.260..10.260 rows=1,000 width=4) (actual rows= loops=)

29. 0.000 0.000 ↓ 0.0

Materialize (cost=0.690..1,113.650 rows=1,700 width=12) (actual rows= loops=)

30. 0.000 0.000 ↓ 0.0

Result (cost=0.690..1,109.400 rows=1,700 width=12) (actual rows= loops=)

  • One-Time Filter: juliet_mike.juliet_india4foxtrot_mike8two_victor('hotel_alpha'::character varying)
31. 0.000 0.000 ↓ 0.0

Nested Loop (cost=0.690..1,109.400 rows=1,700 width=12) (actual rows= loops=)

32. 0.000 0.000 ↓ 0.0

Index Only Scan using four_alpha on sierra_victor zulu_sierra (cost=0.150..69.650 rows=1,700 width=12) (actual rows= loops=)

33. 0.000 0.000 ↓ 0.0

Index Only Scan using six_india on oscar seven_alpha (cost=0.290..0.600 rows=1 width=8) (actual rows= loops=)

  • Index Cond: (xray_romeo = mike_six2.november)
34. 0.000 0.000 ↓ 0.0

Hash (cost=898.980..898.980 rows=20,750 width=40) (actual rows= loops=)

35. 0.000 0.000 ↓ 0.0

Seq Scan on four_bravo delta_sierra (cost=0.000..898.980 rows=20,750 width=40) (actual rows= loops=)

  • Filter: ((lima_sierra((hotel_delta('juliet_lima'::text, 'xray_kilo'::text))::timestamp with time zone, zulu_golf()) >= four_two) AND ((echo_zulu five_romeo NULL) OR ((echo_zulu five_romeo NOT NULL) AND (lima_sierra((hotel_delta('juliet_lima'::text, 'xray_kilo'::text))::timestamp with time zone, zulu_golf()) <= echo_zulu))))
36. 0.000 0.000 ↓ 0.0

Hash (cost=6.720..6.720 rows=86 width=8) (actual rows= loops=)

37. 0.000 0.000 ↓ 0.0

Subquery Scan on kilo_mike (cost=0.000..6.720 rows=86 width=8) (actual rows= loops=)

38. 0.000 0.000 ↓ 0.0

Seq Scan on yankee_two tango_five (cost=0.000..5.860 rows=86 width=249) (actual rows= loops=)

39. 0.000 0.000 ↓ 0.0

Hash (cost=7,551.140..7,551.140 rows=18,030 width=112) (actual rows= loops=)

40. 0.000 0.000 ↓ 0.0

Subquery Scan on lima_romeo_mike (cost=6,512.890..7,551.140 rows=18,030 width=112) (actual rows= loops=)

41. 0.000 0.000 ↓ 0.0

GroupAggregate (cost=6,512.890..7,370.840 rows=18,030 width=112) (actual rows= loops=)

  • Group Key: two_quebec.mike_charlie
42. 0.000 0.000 ↓ 0.0

Sort (cost=6,512.890..6,558.090 rows=18,081 width=289) (actual rows= loops=)

  • Sort Key: two_quebec.mike_charlie
43. 0.000 0.000 ↓ 0.0

Hash Left Join (cost=1,328.160..2,759.860 rows=18,081 width=289) (actual rows= loops=)

  • Hash Cond: (two_quebec.six_six = charlie_alpha4.xray_romeo)
44. 0.000 0.000 ↓ 0.0

Hash Join (cost=26.970..1,210.260 rows=18,081 width=170) (actual rows= loops=)

  • Hash Cond: (two_quebec.four_sierra = charlie_alpha3.xray_romeo)
45. 0.000 0.000 ↓ 0.0

Seq Scan on two_quebec (cost=0.000..934.670 rows=18,081 width=20) (actual rows= loops=)

  • Filter: ((lima_sierra((hotel_delta('juliet_lima'::text, 'xray_kilo'::text))::timestamp with time zone, zulu_golf()) >= xray_hotel) AND ((five_yankee five_romeo NULL) OR ((five_yankee five_romeo NOT NULL) AND (lima_sierra((hotel_delta('juliet_lima'::text, 'xray_kilo'::text))::timestamp with time zone, zulu_golf()) <= five_yankee))))
46. 0.000 0.000 ↓ 0.0

Hash (cost=25.060..25.060 rows=153 width=166) (actual rows= loops=)

47. 0.000 0.000 ↓ 0.0

Subquery Scan on seven_juliet (cost=0.000..25.060 rows=153 width=166) (actual rows= loops=)

48. 0.000 0.000 ↓ 0.0

Seq Scan on romeo_two sierra_hotel (cost=0.000..23.530 rows=153 width=328) (actual rows= loops=)

49. 0.000 0.000 ↓ 0.0

Hash (cost=1,114.580..1,114.580 rows=14,929 width=131) (actual rows= loops=)

50. 0.000 0.000 ↓ 0.0

Subquery Scan on tango_lima (cost=0.000..1,114.580 rows=14,929 width=131) (actual rows= loops=)

51. 0.000 0.000 ↓ 0.0

Seq Scan on xray_xray india_zulu (cost=0.000..965.290 rows=14,929 width=256) (actual rows= loops=)

52. 0.000 0.000 ↓ 0.0

Hash (cost=1.030..1.030 rows=1 width=40) (actual rows= loops=)

53. 0.000 0.000 ↓ 0.0

Seq Scan on golf (cost=0.000..1.030 rows=1 width=40) (actual rows= loops=)

  • Filter: ((lima_sierra((hotel_delta('juliet_lima'::text, 'xray_kilo'::text))::timestamp with time zone, zulu_golf()) >= foxtrot_three) AND ((lima_romeo_two five_romeo NULL) OR ((lima_romeo_two five_romeo NOT NULL) AND (lima_sierra((hotel_delta('juliet_lima'::text, 'xray_kilo'::text))::timestamp with time zone, zulu_golf()) <= lima_romeo_two))))
54. 0.000 0.000 ↓ 0.0

Hash (cost=23.400..23.400 rows=670 width=12) (actual rows= loops=)

55. 0.000 0.000 ↓ 0.0

Subquery Scan on delta_foxtrot (cost=0.000..23.400 rows=670 width=12) (actual rows= loops=)

56. 0.000 0.000 ↓ 0.0

Seq Scan on tango_charlie hotel_quebec (cost=0.000..16.700 rows=670 width=117) (actual rows= loops=)

57. 0.000 0.000 ↓ 0.0

Unique (cost=8.340..8.350 rows=1 width=1) (actual rows= loops=)

58. 0.000 0.000 ↓ 0.0

Sort (cost=8.340..8.340 rows=1 width=1) (actual rows= loops=)

  • Sort Key: (CASE WHEN (echo_papa2.quebec_seven five_romeo NOT NULL) THEN true ELSE false END)
59. 0.000 0.000 ↓ 0.0

Index Scan using echo_six on four_bravo whiskey_juliet (cost=0.290..8.330 rows=1 width=1) (actual rows= loops=)

  • Index Cond: (two_oscar = four_bravo.two_oscar)
  • Filter: ((quebec_seven <> four_bravo.quebec_seven) AND (lima_sierra((hotel_delta('juliet_lima'::text, 'xray_kilo'::text))::timestamp with time zone, zulu_golf()) >= four_two) AND ((echo_zulu five_romeo NULL) OR ((echo_zulu five_romeo NOT NULL) AND (lima_sierra((hotel_delta('juliet_lima'::text, 'xray_kilo'::text))::timestamp with time zone, zulu_golf()) <= echo_zulu))))
60.          

SubPlan (for Result)

61. 0.000 0.000 ↓ 0.0

Function Scan on kilo_seven two_november (cost=0.260..12.760 rows=5 width=32) (actual rows= loops=)

  • Filter: (four_three = charlie_alpha1.quebec_seven)
62. 0.000 0.000 ↓ 0.0

Hash Join (cost=7.210..21.010 rows=5 width=32) (actual rows= loops=)

  • Hash Cond: (juliet_india2.four_three = charlie_alpha5.quebec_seven)
63. 0.000 0.000 ↓ 0.0

Function Scan on romeo_bravo zulu_four (cost=0.260..10.260 rows=1,000 width=36) (actual rows= loops=)

64. 0.000 0.000 ↓ 0.0

Hash (cost=6.940..6.940 rows=1 width=4) (actual rows= loops=)

65. 0.000 0.000 ↓ 0.0

Subquery Scan on delta_xray (cost=0.000..6.940 rows=1 width=4) (actual rows= loops=)

  • Filter: (charlie_alpha5.xray_romeo = four_bravo.lima_five)
66. 0.000 0.000 ↓ 0.0

Seq Scan on yankee_two hotel_victor (cost=0.000..5.860 rows=86 width=249) (actual rows= loops=)

67. 0.000 0.000 ↓ 0.0

Subquery Scan on echo_three (cost=0.000..6.940 rows=1 width=4) (actual rows= loops=)

  • Filter: (four_bravo.lima_five = charlie_alpha6.xray_romeo)
68. 0.000 0.000 ↓ 0.0

Seq Scan on yankee_two delta_oscar (cost=0.000..5.860 rows=86 width=249) (actual rows= loops=)

69. 0.000 0.000 ↓ 0.0

Hash Join (cost=22.450..36.340 rows=15 width=32) (actual rows= loops=)

  • Hash Cond: ((foxtrot_zulu.four_three)::text = (charlie_alpha7.four_three)::text)
70. 0.000 0.000 ↓ 0.0

Function Scan on quebec_mike foxtrot_zulu (cost=0.260..10.260 rows=1,000 width=64) (actual rows= loops=)

71. 0.000 0.000 ↓ 0.0

Hash (cost=22.150..22.150 rows=3 width=32) (actual rows= loops=)

72. 0.000 0.000 ↓ 0.0

Subquery Scan on juliet_yankee (cost=0.000..22.150 rows=3 width=32) (actual rows= loops=)

  • Filter: (charlie_alpha7.xray_romeo = four_bravo.lima_mike)
73. 0.000 0.000 ↓ 0.0

Seq Scan on six_delta yankee_papa (cost=0.000..15.400 rows=540 width=145) (actual rows= loops=)