explain.depesz.com

PostgreSQL's explain analyze made readable

Result: Ediv

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

Sort (cost=453,454.64..453,454.64 rows=1 width=4,728) (actual rows= loops=)

  • Sort Key: tender_lots.tender_lot_id, bidderques0_.questionid
2. 0.000 0.000 ↓ 0.0

Nested Loop (cost=4,295.96..453,454.63 rows=1 width=4,728) (actual rows= loops=)

  • Join Filter: (users_1.company_id = companies.company_id)
3. 0.000 0.000 ↓ 0.0

Nested Loop Left Join (cost=4.10..1,877.87 rows=1 width=3,916) (actual rows= loops=)

  • Filter: (answerses5_.answerid IS NULL)
4. 0.000 0.000 ↓ 0.0

Nested Loop (cost=3.82..1,810.30 rows=87 width=3,662) (actual rows= loops=)

  • Join Filter: (tender_lots.tender_lot_id = tender_lot_data.tender_lot_id)
5. 0.000 0.000 ↓ 0.0

Nested Loop (cost=3.53..1,707.05 rows=80 width=2,626) (actual rows= loops=)

6. 0.000 0.000 ↓ 0.0

Nested Loop (cost=3.11..1,630.80 rows=80 width=2,301) (actual rows= loops=)

7. 0.000 0.000 ↓ 0.0

Nested Loop (cost=2.82..1,567.79 rows=80 width=2,284) (actual rows= loops=)

8. 0.000 0.000 ↓ 0.0

Nested Loop (cost=2.53..1,505.86 rows=80 width=2,280) (actual rows= loops=)

  • Join Filter: (bidderques0_.statuslid = bidderques1_.lookupid)
9. 0.000 0.000 ↓ 0.0

Nested Loop (cost=1.44..1,499.91 rows=80 width=966) (actual rows= loops=)

10. 0.000 0.000 ↓ 0.0

Nested Loop (cost=0.70..1,340.76 rows=86 width=961) (actual rows= loops=)

11. 0.000 0.000 ↓ 0.0

Index Scan using tender_lot_search_index_lot_state on tender_lots (cost=0.42..548.51 rows=572 width=555) (actual rows= loops=)

  • Index Cond: (tender_lot_state_id = 2)
12. 0.000 0.000 ↓ 0.0

Index Scan using bidder_q_on_item on bidder_questions bidderques0_ (cost=0.29..1.37 rows=2 width=406) (actual rows= loops=)

  • Index Cond: (itemid = tender_lots.tender_lot_id)
  • Filter: (statuslid = ANY ('{0,217}'::integer[]))
13. 0.000 0.000 ↓ 0.0

Bitmap Heap Scan on tenders_new (cost=0.74..1.85 rows=1 width=9) (actual rows= loops=)

  • Recheck Cond: (tender_id = tender_lots.tender_id)
  • Filter: tender_is_active
14. 0.000 0.000 ↓ 0.0

Bitmap Index Scan on tenders_pkey (cost=0.00..0.74 rows=1 width=0) (actual rows= loops=)

  • Index Cond: (tender_id = tender_lots.tender_id)
15. 0.000 0.000 ↓ 0.0

Materialize (cost=1.09..1.16 rows=4 width=1,314) (actual rows= loops=)

16. 0.000 0.000 ↓ 0.0

Subquery Scan on bidderques1_ (cost=1.09..1.14 rows=4 width=1,314) (actual rows= loops=)

17. 0.000 0.000 ↓ 0.0

Sort (cost=1.09..1.10 rows=4 width=1,385) (actual rows= loops=)

  • Sort Key: bid_question_states.bid_question_state_order
18. 0.000 0.000 ↓ 0.0

Seq Scan on bid_question_states (cost=0.00..1.05 rows=4 width=1,385) (actual rows= loops=)

19. 0.000 0.000 ↓ 0.0

Index Scan using users_pkey on users (cost=0.29..0.77 rows=1 width=12) (actual rows= loops=)

  • Index Cond: (user_id = tenders_new.user_id)
20. 0.000 0.000 ↓ 0.0

Index Scan using users_person_id_unique on users users_1 (cost=0.29..0.79 rows=1 width=17) (actual rows= loops=)

  • Index Cond: (person_id = bidderques0_.employeeid)
21. 0.000 0.000 ↓ 0.0

Index Scan using persons_pkey on persons (cost=0.41..0.95 rows=1 width=329) (actual rows= loops=)

  • Index Cond: (person_id = users_1.person_id)
22. 0.000 0.000 ↓ 0.0

Index Scan using tender_lot_data_tender_lot_id_idx on tender_lot_data (cost=0.29..1.28 rows=1 width=1,040) (actual rows= loops=)

  • Index Cond: (tender_lot_id = bidderques0_.itemid)
23. 0.000 0.000 ↓ 0.0

Index Scan using bga_on_q_id on bidder_questions_answers answerses5_ (cost=0.29..0.77 rows=1 width=254) (actual rows= loops=)

  • Index Cond: (bidderques0_.questionid = questionid)
  • Filter: isactive
24. 0.000 0.000 ↓ 0.0

Nested Loop Left Join (cost=4,291.85..449,428.11 rows=171,885 width=1,070) (actual rows= loops=)

25. 0.000 0.000 ↓ 0.0

Nested Loop Left Join (cost=4,288.93..275,251.31 rows=57,295 width=1,058) (actual rows= loops=)

26. 0.000 0.000 ↓ 0.0

Hash Join (cost=4,288.50..6,942.86 rows=57,295 width=520) (actual rows= loops=)

  • Hash Cond: (companies_data.company_id = companies.company_id)
27. 0.000 0.000 ↓ 0.0

Seq Scan on companies_data (cost=0.00..2,503.95 rows=57,295 width=329) (actual rows= loops=)

28. 0.000 0.000 ↓ 0.0

Hash (cost=3,598.22..3,598.22 rows=55,222 width=191) (actual rows= loops=)

29. 0.000 0.000 ↓ 0.0

Seq Scan on companies (cost=0.00..3,598.22 rows=55,222 width=191) (actual rows= loops=)

30. 0.000 0.000 ↓ 0.0

Limit (cost=0.44..4.66 rows=1 width=538) (actual rows= loops=)

31. 0.000 0.000 ↓ 0.0

Nested Loop (cost=0.44..13.11 rows=3 width=538) (actual rows= loops=)

  • Join Filter: (comp_address.countryid = utl_countries.countryid)
32. 0.000 0.000 ↓ 0.0

Seq Scan on utl_countries (cost=0.00..1.44 rows=44 width=520) (actual rows= loops=)

33. 0.000 0.000 ↓ 0.0

Materialize (cost=0.44..9.70 rows=3 width=26) (actual rows= loops=)

34. 0.000 0.000 ↓ 0.0

Nested Loop (cost=0.44..9.69 rows=3 width=26) (actual rows= loops=)

35. 0.000 0.000 ↓ 0.0

Index Scan using comp_address_compid_iswithdrawn_idx on comp_address (cost=0.29..3.68 rows=3 width=8) (actual rows= loops=)

  • Index Cond: ((compid = companies.company_id) AND (iswithdrawn = false))
  • Filter: (NOT iswithdrawn)
36. 0.000 0.000 ↓ 0.0

Index Scan using utl_cities_pkey on utl_cities (cost=0.15..2.00 rows=1 width=26) (actual rows= loops=)

  • Index Cond: (cityid = comp_address.cityid)
37. 0.000 0.000 ↓ 0.0

HashAggregate (cost=2.92..2.98 rows=3 width=44) (actual rows= loops=)

  • Group Key: sum((count(*))) OVER (?)
38. 0.000 0.000 ↓ 0.0

WindowAgg (cost=2.74..2.81 rows=3 width=44) (actual rows= loops=)

39. 0.000 0.000 ↓ 0.0

HashAggregate (cost=2.74..2.77 rows=3 width=12) (actual rows= loops=)

  • Group Key: ratings2.value
40. 0.000 0.000 ↓ 0.0

Nested Loop (cost=0.41..2.70 rows=5 width=4) (actual rows= loops=)

41. 0.000 0.000 ↓ 0.0

Seq Scan on rating_statuss (cost=0.00..1.04 rows=1 width=4) (actual rows= loops=)

  • Filter: ((rating_status_constant)::text = 'RATE_MARK_SET'::text)
42. 0.000 0.000 ↓ 0.0

Index Only Scan using ix_ratings2 on ratings2 (cost=0.41..1.62 rows=5 width=8) (actual rows= loops=)

  • Index Cond: ((objectcompid = companies.company_id) AND (ratingstatuslid = rating_statuss.rating_status_id))