explain.depesz.com

PostgreSQL's explain analyze made readable

Result: V1Ui

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

Sort (cost=106,044.64..106,068.44 rows=9,518 width=588) (actual rows= loops=)

  • Sort Key: ro.deadline_date, (to_char((ro.deadline_time)::interval, 'HH24:MI'::text)), ro.id
2. 0.000 0.000 ↓ 0.0

Hash Left Join (cost=99,682.86..105,415.67 rows=9,518 width=588) (actual rows= loops=)

  • Hash Cond: (ro.warehouse_id = warehouse.id)
3. 0.000 0.000 ↓ 0.0

Hash Left Join (cost=99,680.98..105,029.17 rows=9,518 width=444) (actual rows= loops=)

  • Hash Cond: (ro.created_by = creator.id)
4. 0.000 0.000 ↓ 0.0

Hash Left Join (cost=99,645.08..104,967.93 rows=9,518 width=438) (actual rows= loops=)

  • Hash Cond: (ro.project_manager_id = pm.id)
5. 0.000 0.000 ↓ 0.0

Hash Left Join (cost=99,609.17..104,906.70 rows=9,518 width=428) (actual rows= loops=)

  • Hash Cond: (sru.region_id = sr.id)
6. 0.000 0.000 ↓ 0.0

Hash Left Join (cost=99,607.94..104,869.90 rows=9,518 width=415) (actual rows= loops=)

  • Hash Cond: (ro.project_manager_id = COALESCE(sru.manager_id, sru.project_manager_id))
7. 0.000 0.000 ↓ 0.0

Hash Left Join (cost=99,606.49..104,796.83 rows=9,518 width=411) (actual rows= loops=)

  • Hash Cond: (ro.object_id = so.id)
8. 0.000 0.000 ↓ 0.0

Hash Join (cost=97,831.59..102,996.95 rows=9,518 width=383) (actual rows= loops=)

  • Hash Cond: (ro.client_id = client.id)
9. 0.000 0.000 ↓ 0.0

Hash Left Join (cost=92,420.53..97,560.90 rows=9,518 width=363) (actual rows= loops=)

  • Hash Cond: (ro.id = cc.ro_id)
10. 0.000 0.000 ↓ 0.0

Hash Left Join (cost=87,296.57..92,411.95 rows=9,518 width=331) (actual rows= loops=)

  • Hash Cond: (ro.id = ro_good.ro_id)
11. 0.000 0.000 ↓ 0.0

Hash Left Join (cost=84,863.82..89,954.19 rows=9,518 width=299) (actual rows= loops=)

  • Hash Cond: (ro.id = ro_operating.ro_id)
12. 0.000 0.000 ↓ 0.0

Merge Join (cost=84,664.08..89,729.46 rows=9,518 width=267) (actual rows= loops=)

  • Merge Cond: (administrator.id = ro.administrator_id)
13. 0.000 0.000 ↓ 0.0

Index Scan using subject_subject_pkey on subject_subject administrator (cost=0.29..18,394.05 rows=20,714 width=24) (actual rows= loops=)

14. 0.000 0.000 ↓ 0.0

Sort (cost=84,662.01..84,685.81 rows=9,518 width=247) (actual rows= loops=)

  • Sort Key: ro.administrator_id
15. 0.000 0.000 ↓ 0.0

Hash Join (cost=80,349.22..84,033.04 rows=9,518 width=247) (actual rows= loops=)

  • Hash Cond: ((ro.type)::text = (rotc.type)::text)
16. 0.000 0.000 ↓ 0.0

Hash Join (cost=80,348.18..83,901.12 rows=9,518 width=239) (actual rows= loops=)

  • Hash Cond: ((ro.status)::text = (rosc.status)::text)
17. 0.000 0.000 ↓ 0.0

Hash Join (cost=80,347.06..83,769.14 rows=9,518 width=231) (actual rows= loops=)

  • Hash Cond: (ro.currency_id = currency_currency.id)
18. 0.000 0.000 ↓ 0.0

Merge Left Join (cost=80,345.91..83,727.87 rows=9,518 width=227) (actual rows= loops=)

  • Merge Cond: (ro.id = ro_1.id)
19. 0.000 0.000 ↓ 0.0

Merge Left Join (cost=80,077.17..82,959.21 rows=9,518 width=195) (actual rows= loops=)

  • Merge Cond: (ro.id = rog_2.rent_order_id)
20. 0.000 0.000 ↓ 0.0

Merge Left Join (cost=55,401.85..57,434.45 rows=9,518 width=163) (actual rows= loops=)

  • Merge Cond: (ro.id = rog_1.rent_order_id)
21. 0.000 0.000 ↓ 0.0

Merge Left Join (cost=31,785.28..33,008.64 rows=9,518 width=131) (actual rows= loops=)

  • Merge Cond: (ro.id = rog.rent_order_id)
22. 0.000 0.000 ↓ 0.0

Index Scan using rent_order_pkey on rent_order ro (cost=0.29..573.02 rows=9,518 width=99) (actual rows= loops=)

23. 0.000 0.000 ↓ 0.0

GroupAggregate (cost=31,784.99..32,205.77 rows=9,158 width=36) (actual rows= loops=)

  • Group Key: rog.rent_order_id
24. 0.000 0.000 ↓ 0.0

Sort (cost=31,784.99..31,861.57 rows=30,630 width=16) (actual rows= loops=)

  • Sort Key: rog.rent_order_id
25. 0.000 0.000 ↓ 0.0

Hash Join (cost=28,758.10..29,502.65 rows=30,630 width=16) (actual rows= loops=)

  • Hash Cond: (rag.account_id = ra_1.id)
26. 0.000 0.000 ↓ 0.0

Hash Join (cost=24,158.00..24,822.13 rows=30,630 width=8) (actual rows= loops=)

  • Hash Cond: (rograg.rag_id = rag.id)
27. 0.000 0.000 ↓ 0.0

Hash Join (cost=462.36..1,046.08 rows=30,630 width=8) (actual rows= loops=)

  • Hash Cond: (rograg.rog_id = rog.id)
28. 0.000 0.000 ↓ 0.0

Seq Scan on rent_order_good_rag rograg (cost=0.00..503.30 rows=30,630 width=8) (actual rows= loops=)

29. 0.000 0.000 ↓ 0.0

Hash (cost=278.27..278.27 rows=14,727 width=8) (actual rows= loops=)

30. 0.000 0.000 ↓ 0.0

Seq Scan on rent_order_good rog (cost=0.00..278.27 rows=14,727 width=8) (actual rows= loops=)

31. 0.000 0.000 ↓ 0.0

Hash (cost=18,935.84..18,935.84 rows=380,784 width=8) (actual rows= loops=)

32. 0.000 0.000 ↓ 0.0

Seq Scan on rent_account_good rag (cost=0.00..18,935.84 rows=380,784 width=8) (actual rows= loops=)

33. 0.000 0.000 ↓ 0.0

Hash (cost=3,837.27..3,837.27 rows=61,027 width=12) (actual rows= loops=)

34. 0.000 0.000 ↓ 0.0

Seq Scan on rent_account ra_1 (cost=0.00..3,837.27 rows=61,027 width=12) (actual rows= loops=)

35. 0.000 0.000 ↓ 0.0

GroupAggregate (cost=23,616.58..24,195.96 rows=9,158 width=36) (actual rows= loops=)

  • Group Key: rog_1.rent_order_id
36. 0.000 0.000 ↓ 0.0

Sort (cost=23,616.58..23,682.99 rows=26,566 width=38) (actual rows= loops=)

  • Sort Key: rog_1.rent_order_id
37. 0.000 0.000 ↓ 0.0

Gather (cost=2,384.86..21,664.33 rows=26,566 width=38) (actual rows= loops=)

  • Workers Planned: 2
38. 0.000 0.000 ↓ 0.0

Hash Left Join (cost=1,384.86..18,007.73 rows=11,069 width=38) (actual rows= loops=)

  • Hash Cond: (rat.assigned_user_id = au.id)
39. 0.000 0.000 ↓ 0.0

Nested Loop Left Join (cost=1,348.95..17,942.37 rows=11,069 width=32) (actual rows= loops=)

40. 0.000 0.000 ↓ 0.0

Hash Join (cost=1,348.53..12,346.37 rows=11,069 width=8) (actual rows= loops=)

  • Hash Cond: (rograg_1.rog_id = rog_1.id)
41. 0.000 0.000 ↓ 0.0

Hash Join (cost=886.17..11,854.94 rows=11,069 width=8) (actual rows= loops=)

  • Hash Cond: (rr.rag_id = rograg_1.rag_id)
42. 0.000 0.000 ↓ 0.0

Parallel Seq Scan on ratg_rag rr (cost=0.00..8,442.33 rows=128,840 width=8) (actual rows= loops=)

  • Filter: ((task_type)::text = 'return'::text)
43. 0.000 0.000 ↓ 0.0

Hash (cost=503.30..503.30 rows=30,630 width=8) (actual rows= loops=)

44. 0.000 0.000 ↓ 0.0

Seq Scan on rent_order_good_rag rograg_1 (cost=0.00..503.30 rows=30,630 width=8) (actual rows= loops=)

45. 0.000 0.000 ↓ 0.0

Hash (cost=278.27..278.27 rows=14,727 width=8) (actual rows= loops=)

46. 0.000 0.000 ↓ 0.0

Seq Scan on rent_order_good rog_1 (cost=0.00..278.27 rows=14,727 width=8) (actual rows= loops=)

47. 0.000 0.000 ↓ 0.0

Index Scan using rent_account_task_pkey on rent_account_task rat (cost=0.42..0.51 rows=1 width=28) (actual rows= loops=)

  • Index Cond: (id = rr.task_id)
48. 0.000 0.000 ↓ 0.0

Hash (cost=32.07..32.07 rows=307 width=14) (actual rows= loops=)

49. 0.000 0.000 ↓ 0.0

Seq Scan on auth_user au (cost=0.00..32.07 rows=307 width=14) (actual rows= loops=)

50. 0.000 0.000 ↓ 0.0

GroupAggregate (cost=24,675.31..25,294.91 rows=9,158 width=36) (actual rows= loops=)

  • Group Key: rog_2.rent_order_id
51. 0.000 0.000 ↓ 0.0

Sort (cost=24,675.31..24,747.47 rows=28,864 width=38) (actual rows= loops=)

  • Sort Key: rog_2.rent_order_id
52. 0.000 0.000 ↓ 0.0

Gather (cost=2,384.86..22,536.93 rows=28,864 width=38) (actual rows= loops=)

  • Workers Planned: 2
53. 0.000 0.000 ↓ 0.0

Hash Left Join (cost=1,384.86..18,650.53 rows=12,027 width=38) (actual rows= loops=)

  • Hash Cond: (rat_1.assigned_user_id = au_1.id)
54. 0.000 0.000 ↓ 0.0

Nested Loop Left Join (cost=1,348.95..18,582.62 rows=12,027 width=32) (actual rows= loops=)

55. 0.000 0.000 ↓ 0.0

Hash Join (cost=1,348.53..12,567.47 rows=12,027 width=8) (actual rows= loops=)

  • Hash Cond: (rograg_2.rog_id = rog_2.id)
56. 0.000 0.000 ↓ 0.0

Hash Join (cost=886.17..12,073.53 rows=12,027 width=8) (actual rows= loops=)

  • Hash Cond: (rr_1.rag_id = rograg_2.rag_id)
57. 0.000 0.000 ↓ 0.0

Parallel Seq Scan on ratg_rag rr_1 (cost=0.00..8,442.33 rows=139,987 width=8) (actual rows= loops=)

  • Filter: ((task_type)::text = 'transfer'::text)
58. 0.000 0.000 ↓ 0.0

Hash (cost=503.30..503.30 rows=30,630 width=8) (actual rows= loops=)

59. 0.000 0.000 ↓ 0.0

Seq Scan on rent_order_good_rag rograg_2 (cost=0.00..503.30 rows=30,630 width=8) (actual rows= loops=)

60. 0.000 0.000 ↓ 0.0

Hash (cost=278.27..278.27 rows=14,727 width=8) (actual rows= loops=)

61. 0.000 0.000 ↓ 0.0

Seq Scan on rent_order_good rog_2 (cost=0.00..278.27 rows=14,727 width=8) (actual rows= loops=)

62. 0.000 0.000 ↓ 0.0

Index Scan using rent_account_task_pkey on rent_account_task rat_1 (cost=0.42..0.50 rows=1 width=28) (actual rows= loops=)

  • Index Cond: (id = rr_1.task_id)
63. 0.000 0.000 ↓ 0.0

Hash (cost=32.07..32.07 rows=307 width=14) (actual rows= loops=)

64. 0.000 0.000 ↓ 0.0

Seq Scan on auth_user au_1 (cost=0.00..32.07 rows=307 width=14) (actual rows= loops=)

65. 0.000 0.000 ↓ 0.0

GroupAggregate (cost=268.74..667.56 rows=3,436 width=36) (actual rows= loops=)

  • Group Key: ro_1.id
66. 0.000 0.000 ↓ 0.0

Merge Join (cost=268.74..598.84 rows=3,436 width=21) (actual rows= loops=)

  • Merge Cond: (ros.rent_order_id = ro_1.id)
67. 0.000 0.000 ↓ 0.0

Sort (cost=268.46..277.05 rows=3,436 width=21) (actual rows= loops=)

  • Sort Key: ros.rent_order_id
68. 0.000 0.000 ↓ 0.0

Seq Scan on rent_order_service ros (cost=0.00..66.65 rows=3,436 width=21) (actual rows= loops=)

  • Filter: ((type)::text = 'transport'::text)
69. 0.000 0.000 ↓ 0.0

Index Only Scan using rent_order_pkey on rent_order ro_1 (cost=0.29..255.06 rows=9,518 width=4) (actual rows= loops=)

70. 0.000 0.000 ↓ 0.0

Hash (cost=1.07..1.07 rows=7 width=8) (actual rows= loops=)

71. 0.000 0.000 ↓ 0.0

Seq Scan on currency_currency (cost=0.00..1.07 rows=7 width=8) (actual rows= loops=)

72. 0.000 0.000 ↓ 0.0

Hash (cost=1.05..1.05 rows=5 width=16) (actual rows= loops=)

73. 0.000 0.000 ↓ 0.0

Seq Scan on rent_order_status_color rosc (cost=0.00..1.05 rows=5 width=16) (actual rows= loops=)

74. 0.000 0.000 ↓ 0.0

Hash (cost=1.02..1.02 rows=2 width=16) (actual rows= loops=)

75. 0.000 0.000 ↓ 0.0

Seq Scan on rent_order_type_color rotc (cost=0.00..1.02 rows=2 width=16) (actual rows= loops=)

76. 0.000 0.000 ↓ 0.0

Hash (cost=199.04..199.04 rows=56 width=36) (actual rows= loops=)

77. 0.000 0.000 ↓ 0.0

Subquery Scan on ro_operating (cost=197.22..199.04 rows=56 width=36) (actual rows= loops=)

78. 0.000 0.000 ↓ 0.0

GroupAggregate (cost=197.22..198.48 rows=56 width=36) (actual rows= loops=)

  • Group Key: ro_1_1.id
79. 0.000 0.000 ↓ 0.0

Sort (cost=197.22..197.36 rows=56 width=21) (actual rows= loops=)

  • Sort Key: ro_1_1.id
80. 0.000 0.000 ↓ 0.0

Nested Loop (cost=0.29..195.59 rows=56 width=21) (actual rows= loops=)

81. 0.000 0.000 ↓ 0.0

Seq Scan on rent_order_service ros_1 (cost=0.00..66.65 rows=56 width=21) (actual rows= loops=)

  • Filter: ((type)::text = 'operating'::text)
82. 0.000 0.000 ↓ 0.0

Index Only Scan using rent_order_pkey on rent_order ro_1_1 (cost=0.29..2.30 rows=1 width=4) (actual rows= loops=)

  • Index Cond: (id = ros_1.rent_order_id)
83. 0.000 0.000 ↓ 0.0

Hash (cost=2,313.78..2,313.78 rows=9,518 width=36) (actual rows= loops=)

84. 0.000 0.000 ↓ 0.0

Subquery Scan on ro_good (cost=1,952.36..2,313.78 rows=9,518 width=36) (actual rows= loops=)

85. 0.000 0.000 ↓ 0.0

GroupAggregate (cost=1,952.36..2,218.60 rows=9,518 width=36) (actual rows= loops=)

  • Group Key: ro_1_2.id
86. 0.000 0.000 ↓ 0.0

Sort (cost=1,952.36..1,989.18 rows=14,727 width=42) (actual rows= loops=)

  • Sort Key: ro_1_2.id
87. 0.000 0.000 ↓ 0.0

Hash Left Join (cost=538.30..932.79 rows=14,727 width=42) (actual rows= loops=)

  • Hash Cond: (rog_3.technology_id = t.id)
88. 0.000 0.000 ↓ 0.0

Hash Left Join (cost=521.84..877.52 rows=14,727 width=33) (actual rows= loops=)

  • Hash Cond: (rog_3.good_id = g.id)
89. 0.000 0.000 ↓ 0.0

Hash Join (cost=374.03..690.98 rows=14,727 width=24) (actual rows= loops=)

  • Hash Cond: (rog_3.rent_order_id = ro_1_2.id)
90. 0.000 0.000 ↓ 0.0

Seq Scan on rent_order_good rog_3 (cost=0.00..278.27 rows=14,727 width=24) (actual rows= loops=)

91. 0.000 0.000 ↓ 0.0

Hash (cost=255.06..255.06 rows=9,518 width=4) (actual rows= loops=)

92. 0.000 0.000 ↓ 0.0

Index Only Scan using rent_order_pkey on rent_order ro_1_2 (cost=0.29..255.06 rows=9,518 width=4) (actual rows= loops=)

93. 0.000 0.000 ↓ 0.0

Hash (cost=128.47..128.47 rows=1,547 width=13) (actual rows= loops=)

94. 0.000 0.000 ↓ 0.0

Seq Scan on good g (cost=0.00..128.47 rows=1,547 width=13) (actual rows= loops=)

95. 0.000 0.000 ↓ 0.0

Hash (cost=13.43..13.43 rows=243 width=13) (actual rows= loops=)

96. 0.000 0.000 ↓ 0.0

Seq Scan on technology t (cost=0.00..13.43 rows=243 width=13) (actual rows= loops=)

97. 0.000 0.000 ↓ 0.0

Hash (cost=5,013.08..5,013.08 rows=8,870 width=36) (actual rows= loops=)

98. 0.000 0.000 ↓ 0.0

Subquery Scan on cc (cost=4,724.27..5,013.08 rows=8,870 width=36) (actual rows= loops=)

99. 0.000 0.000 ↓ 0.0

GroupAggregate (cost=4,724.27..4,924.38 rows=8,870 width=36) (actual rows= loops=)

  • Group Key: roc.ro_id
100. 0.000 0.000 ↓ 0.0

Sort (cost=4,724.27..4,746.58 rows=8,923 width=33) (actual rows= loops=)

  • Sort Key: roc.ro_id
101. 0.000 0.000 ↓ 0.0

Hash Join (cost=3,977.12..4,138.78 rows=8,923 width=33) (actual rows= loops=)

  • Hash Cond: (roc.contact_id = contact_contact.id)
102. 0.000 0.000 ↓ 0.0

Seq Scan on rent_order_contact roc (cost=0.00..138.23 rows=8,923 width=8) (actual rows= loops=)

103. 0.000 0.000 ↓ 0.0

Hash (cost=3,086.50..3,086.50 rows=71,250 width=29) (actual rows= loops=)

104. 0.000 0.000 ↓ 0.0

Seq Scan on contact_contact (cost=0.00..3,086.50 rows=71,250 width=29) (actual rows= loops=)

105. 0.000 0.000 ↓ 0.0

Hash (cost=5,152.14..5,152.14 rows=20,714 width=24) (actual rows= loops=)

106. 0.000 0.000 ↓ 0.0

Seq Scan on subject_subject client (cost=0.00..5,152.14 rows=20,714 width=24) (actual rows= loops=)

107. 0.000 0.000 ↓ 0.0

Hash (cost=1,319.40..1,319.40 rows=36,440 width=32) (actual rows= loops=)

108. 0.000 0.000 ↓ 0.0

Seq Scan on subject_object so (cost=0.00..1,319.40 rows=36,440 width=32) (actual rows= loops=)

109. 0.000 0.000 ↓ 0.0

Hash (cost=1.20..1.20 rows=20 width=12) (actual rows= loops=)

110. 0.000 0.000 ↓ 0.0

Seq Scan on subject_region_user sru (cost=0.00..1.20 rows=20 width=12) (actual rows= loops=)

111. 0.000 0.000 ↓ 0.0

Hash (cost=1.10..1.10 rows=10 width=17) (actual rows= loops=)

112. 0.000 0.000 ↓ 0.0

Seq Scan on subject_region sr (cost=0.00..1.10 rows=10 width=17) (actual rows= loops=)

113. 0.000 0.000 ↓ 0.0

Hash (cost=32.07..32.07 rows=307 width=14) (actual rows= loops=)

114. 0.000 0.000 ↓ 0.0

Seq Scan on auth_user pm (cost=0.00..32.07 rows=307 width=14) (actual rows= loops=)

115. 0.000 0.000 ↓ 0.0

Hash (cost=32.07..32.07 rows=307 width=14) (actual rows= loops=)

116. 0.000 0.000 ↓ 0.0

Seq Scan on auth_user creator (cost=0.00..32.07 rows=307 width=14) (actual rows= loops=)

117. 0.000 0.000 ↓ 0.0

Hash (cost=1.39..1.39 rows=39 width=40) (actual rows= loops=)

118. 0.000 0.000 ↓ 0.0

Seq Scan on warehouse (cost=0.00..1.39 rows=39 width=40) (actual rows= loops=)