explain.depesz.com

PostgreSQL's explain analyze made readable

Result: IgVy : dfdg

Settings
# exclusive inclusive rows x rows loops node
1. 7.898 36.680 ↑ 1.0 25 1

Limit (cost=1,007.69..13,489.04 rows=25 width=2,353) (actual time=28.220..36.680 rows=25 loops=1)

2. 0.015 28.782 ↑ 1,941.3 25 1

Nested Loop Left Join (cost=1,007.69..24,230,812.26 rows=48,532 width=2,353) (actual time=28.220..28.782 rows=25 loops=1)

  • Filter: ((dcc.contract_contragent_id = 66,490) OR (dcc2.contract_contragent_id = 66,490))
  • Rows Removed by Filter: 24
3. 0.025 28.718 ↑ 25,320.7 49 1

Nested Loop Left Join (cost=1,007.42..23,836,674.96 rows=1,240,715 width=2,436) (actual time=28.205..28.718 rows=49 loops=1)

4. 0.033 28.693 ↑ 25,320.7 49 1

Nested Loop Left Join (cost=1,007.14..23,461,115.66 rows=1,240,715 width=2,436) (actual time=28.198..28.693 rows=49 loops=1)

  • Join Filter: (dpoc2.supplier_id = ns.contragent_id)
  • Rows Removed by Join Filter: 48
  • Filter: ((dpoc2.date_contract_end IS NULL) OR (dpoc2.date_contract_end >= now()))
5. 0.019 28.610 ↑ 52,327.2 25 1

Nested Loop Left Join (cost=1,006.87..22,963,989.31 rows=1,308,179 width=2,436) (actual time=28.185..28.610 rows=25 loops=1)

  • Filter: ((dpoc.date_contract_end IS NULL) OR (dpoc.date_contract_end >= now()))
6. 0.016 28.591 ↑ 55,172.4 25 1

Nested Loop Left Join (cost=1,006.59..22,539,831.86 rows=1,379,311 width=2,436) (actual time=28.179..28.591 rows=25 loops=1)

7. 0.015 28.575 ↑ 55,043.0 25 1

Nested Loop Left Join (cost=1,006.17..21,895,694.18 rows=1,376,076 width=2,427) (actual time=28.172..28.575 rows=25 loops=1)

  • Join Filter: (ns.appropriated_position_type = 2)
8. 0.015 28.560 ↑ 55,043.0 25 1

Nested Loop Left Join (cost=1,006.03..21,658,318.96 rows=1,376,076 width=2,358) (actual time=28.166..28.560 rows=25 loops=1)

  • Join Filter: (ns.appropriated_position_type = 3)
9. 0.014 28.545 ↑ 55,043.0 25 1

Nested Loop Left Join (cost=1,005.74..21,217,524.20 rows=1,376,076 width=2,273) (actual time=28.160..28.545 rows=25 loops=1)

  • Join Filter: (ns.appropriated_position_type = 1)
10. 0.015 28.531 ↑ 55,043.0 25 1

Nested Loop Left Join (cost=1,005.61..20,990,470.39 rows=1,376,076 width=1,241) (actual time=28.154..28.531 rows=25 loops=1)

11. 0.017 28.516 ↑ 55,043.0 25 1

Nested Loop Left Join (cost=1,005.19..20,381,109.06 rows=1,376,076 width=1,218) (actual time=28.148..28.516 rows=25 loops=1)

12. 0.001 28.474 ↑ 55,043.0 25 1

Nested Loop (cost=1,004.76..18,998,866.62 rows=1,376,076 width=1,207) (actual time=28.135..28.474 rows=25 loops=1)

13. 0.015 28.423 ↑ 55,700.4 25 1

Nested Loop Left Join (cost=1,004.34..18,355,842.50 rows=1,392,509 width=1,106) (actual time=28.121..28.423 rows=25 loops=1)

14. 0.003 28.408 ↑ 55,700.4 25 1

Nested Loop Left Join (cost=1,004.05..17,927,190.16 rows=1,392,509 width=1,017) (actual time=28.114..28.408 rows=25 loops=1)

  • Join Filter: ((nc.parent_code)::text = (dpc.classifier_type)::text)
15. 0.015 28.330 ↑ 55,700.4 25 1

Nested Loop Left Join (cost=1,004.05..14,785,961.03 rows=1,392,509 width=933) (actual time=28.080..28.330 rows=25 loops=1)

16. 0.014 28.265 ↑ 55,700.4 25 1

Nested Loop Left Join (cost=1,003.77..14,375,165.81 rows=1,392,509 width=923) (actual time=28.062..28.265 rows=25 loops=1)

17. 0.015 28.251 ↑ 55,700.4 25 1

Nested Loop Left Join (cost=1,003.49..13,964,348.18 rows=1,392,509 width=913) (actual time=28.056..28.251 rows=25 loops=1)

  • Join Filter: (cl.id = dpc.classifier_type)
  • Rows Removed by Join Filter: 175
18. 0.010 28.211 ↑ 55,700.4 25 1

Nested Loop Left Join (cost=1,003.49..13,833,787.49 rows=1,392,509 width=902) (actual time=28.036..28.211 rows=25 loops=1)

  • Filter: (ncchild.is_actual OR (ncchild.is_actual IS NULL))
19. 0.017 28.126 ↑ 110,846.5 25 1

Nested Loop Left Join (cost=1,003.49..7,996,292.97 rows=2,771,162 width=811) (actual time=27.995..28.126 rows=25 loops=1)

  • Filter: ((dpc.classifier_type = 1) OR (dpc.classifier_type IS NULL))
20. 0.009 28.109 ↑ 164,026.6 25 1

Nested Loop (cost=1,003.06..6,088,447.04 rows=4,100,664 width=795) (actual time=27.988..28.109 rows=25 loops=1)

21. 0.000 28.025 ↑ 164,026.6 25 1

Nested Loop (cost=1,002.64..4,293,737.07 rows=4,100,664 width=799) (actual time=27.969..28.025 rows=25 loops=1)

22. 27.153 34.639 ↑ 4,136.2 865 1

Gather Merge (cost=1,002.21..2,142,022.42 rows=3,577,848 width=776) (actual time=8.344..34.639 rows=865 loops=1)

  • Workers Planned: 5
  • Workers Launched: 5
23. 0.193 7.486 ↑ 2,817.2 254 6 / 6

Nested Loop Left Join (cost=2.13..1,710,160.67 rows=715,570 width=776) (actual time=0.253..7.486 rows=254 loops=6)

24. 0.055 5.515 ↑ 2,817.2 254 6 / 6

Nested Loop Left Join (cost=1.71..1,379,028.55 rows=715,570 width=772) (actual time=0.200..5.515 rows=254 loops=6)

25. 0.137 3.936 ↑ 2,817.2 254 6 / 6

Nested Loop Left Join (cost=1.28..978,015.37 rows=715,570 width=661) (actual time=0.177..3.936 rows=254 loops=6)

26. 0.172 3.799 ↑ 2,817.2 254 6 / 6

Nested Loop Left Join (cost=1.14..861,768.75 rows=715,570 width=639) (actual time=0.160..3.799 rows=254 loops=6)

27. 0.330 3.627 ↑ 2,817.2 254 6 / 6

Nested Loop Left Join (cost=0.86..650,669.21 rows=715,570 width=588) (actual time=0.141..3.627 rows=254 loops=6)

  • Filter: ((NOT ndp.suggested) OR (ndp.suggested IS NULL))
28. 0.757 0.757 ↑ 2,826.0 254 6 / 6

Parallel Index Scan Backward using nsi_supplier_position_pkey on nsi_supplier_position ns (cost=0.43..280,512.47 rows=717,795 width=452) (actual time=0.068..0.757 rows=254 loops=6)

  • Filter: (NOT deleted)
  • Rows Removed by Filter: 1
29. 2.540 2.540 ↑ 1.0 1 1,524 / 6

Index Scan using nsi_dictionary_position_pkey on nsi_dictionary_position ndp (cost=0.43..0.51 rows=1 width=137) (actual time=0.010..0.010 rows=1 loops=1,524)

  • Index Cond: (id = ns.dictionary_position_id)
30. 0.000 0.000 ↓ 0.0 0 1,524 / 6

Index Scan using nsi_manufacturers_pkey on nsi_manufacturers nm (cost=0.28..0.30 rows=1 width=59) (actual time=0.000..0.000 rows=0 loops=1,524)

  • Index Cond: (id = ns.manufacturer_id)
31. 0.000 0.000 ↓ 0.0 0 1,524 / 6

Index Scan using vocab_iso_countries_uniq_iso_nr on vocab_iso_countries vic (cost=0.14..0.16 rows=1 width=26) (actual time=0.000..0.000 rows=0 loops=1,524)

  • Index Cond: (iso_nr = ns.country_iso)
32. 1.524 1.524 ↑ 1.0 1 1,524 / 6

Index Scan using nsi_dictionary_position_pkey on nsi_dictionary_position ndp2 (cost=0.43..0.56 rows=1 width=115) (actual time=0.006..0.006 rows=1 loops=1,524)

  • Index Cond: (id = ndp.standard_id)
33. 1.778 1.778 ↑ 1.0 1 1,524 / 6

Index Scan using nsi_dictionary_position_category_dictionary_position_id_idx on nsi_dictionary_position_category dpc2 (cost=0.43..0.45 rows=1 width=8) (actual time=0.007..0.007 rows=1 loops=1,524)

  • Index Cond: (dictionary_position_id = ndp2.id)
34. 0.865 0.865 ↓ 0.0 0 865

Index Scan using nsi_price_order_contract_positions_position_id_idx on nsi_price_order_contract_positions dpop (cost=0.43..0.55 rows=5 width=27) (actual time=0.001..0.001 rows=0 loops=865)

  • Index Cond: (position_id = ns.id)
  • Filter: (status = 3)
35. 0.075 0.075 ↑ 1.0 1 25

Index Only Scan using nsi_master_position_pkey on nsi_master_position mp (cost=0.42..0.44 rows=1 width=4) (actual time=0.003..0.003 rows=1 loops=25)

  • Index Cond: (id = dpop.master_position_id)
  • Heap Fetches: 0
36. 0.000 0.000 ↓ 0.0 0 25

Index Scan using nsi_dictionary_position_category_dictionary_position_id_idx on nsi_dictionary_position_category dpc (cost=0.43..0.45 rows=1 width=20) (actual time=0.000..0.000 rows=0 loops=25)

  • Index Cond: (dictionary_position_id = ndp.id)
37. 0.075 0.075 ↓ 0.0 0 25

Append (cost=0.00..2.03 rows=8 width=107) (actual time=0.003..0.003 rows=0 loops=25)

38. 0.000 0.000 ↓ 0.0 0 25

Seq Scan on nsi_partitional_category ncchild (cost=0.00..0.00 rows=1 width=411) (actual time=0.000..0.000 rows=0 loops=25)

  • Filter: (((dpc.category_code)::text = (code)::text) AND (classifier_type_id = dpc.classifier_type) AND ((parent_code)::text <> (dpc.classifier_type)::text))
39. 0.000 0.000 ↓ 0.0 0 25

Index Scan using nsi_partitional_category_1_code_idx on nsi_partitional_category_1 ncchild_1 (cost=0.41..0.45 rows=1 width=109) (actual time=0.000..0.000 rows=0 loops=25)

  • Index Cond: ((code)::text = (dpc.category_code)::text)
  • Filter: ((classifier_type_id = dpc.classifier_type) AND ((parent_code)::text <> (dpc.classifier_type)::text))
40. 0.000 0.000 ↓ 0.0 0 25

Index Scan using nsi_partitional_category_2_code_idx on nsi_partitional_category_2 ncchild_2 (cost=0.28..0.31 rows=1 width=74) (actual time=0.000..0.000 rows=0 loops=25)

  • Index Cond: ((code)::text = (dpc.category_code)::text)
  • Filter: ((classifier_type_id = dpc.classifier_type) AND ((parent_code)::text <> (dpc.classifier_type)::text))
41. 0.000 0.000 ↓ 0.0 0 25

Index Scan using nsi_partitional_category_3_code_idx on nsi_partitional_category_3 ncchild_3 (cost=0.14..0.17 rows=1 width=58) (actual time=0.000..0.000 rows=0 loops=25)

  • Index Cond: ((code)::text = (dpc.category_code)::text)
  • Filter: ((classifier_type_id = dpc.classifier_type) AND ((parent_code)::text <> (dpc.classifier_type)::text))
42. 0.000 0.000 ↓ 0.0 0 25

Index Scan using nsi_partitional_category_4_code_idx on nsi_partitional_category_4 ncchild_4 (cost=0.12..0.15 rows=1 width=411) (actual time=0.000..0.000 rows=0 loops=25)

  • Index Cond: ((code)::text = (dpc.category_code)::text)
  • Filter: ((classifier_type_id = dpc.classifier_type) AND ((parent_code)::text <> (dpc.classifier_type)::text))
43. 0.000 0.000 ↓ 0.0 0 25

Index Scan using nsi_partitional_category_5_code_idx on nsi_partitional_category_5 ncchild_5 (cost=0.27..0.30 rows=1 width=153) (actual time=0.000..0.000 rows=0 loops=25)

  • Index Cond: ((code)::text = (dpc.category_code)::text)
  • Filter: ((classifier_type_id = dpc.classifier_type) AND ((parent_code)::text <> (dpc.classifier_type)::text))
44. 0.000 0.000 ↓ 0.0 0 25

Index Scan using nsi_partitional_category_6_code_idx on nsi_partitional_category_6 ncchild_6 (cost=0.28..0.31 rows=1 width=74) (actual time=0.000..0.000 rows=0 loops=25)

  • Index Cond: ((code)::text = (dpc.category_code)::text)
  • Filter: ((classifier_type_id = dpc.classifier_type) AND ((parent_code)::text <> (dpc.classifier_type)::text))
45. 0.000 0.000 ↓ 0.0 0 25

Index Scan using nsi_partitional_category_7_code_idx on nsi_partitional_category_7 ncchild_7 (cost=0.28..0.30 rows=1 width=75) (actual time=0.000..0.000 rows=0 loops=25)

  • Index Cond: ((code)::text = (dpc.category_code)::text)
  • Filter: ((classifier_type_id = dpc.classifier_type) AND ((parent_code)::text <> (dpc.classifier_type)::text))
46. 0.013 0.025 ↑ 1.0 7 25

Materialize (cost=0.00..4.11 rows=7 width=15) (actual time=0.000..0.001 rows=7 loops=25)

47. 0.012 0.012 ↑ 1.0 7 1

Seq Scan on nsi_classifier_type cl (cost=0.00..4.07 rows=7 width=15) (actual time=0.008..0.012 rows=7 loops=1)

48. 0.000 0.000 ↓ 0.0 0 25

Index Scan using nsi_vocab_okei_pkey on nsi_vocab_okei lo (cost=0.28..0.30 rows=1 width=14) (actual time=0.000..0.000 rows=0 loops=25)

  • Index Cond: ((code)::text = (ndp.okei_code)::text)
49. 0.050 0.050 ↑ 1.0 1 25

Index Scan using nsi_vocab_okei_pkey on nsi_vocab_okei lo2 (cost=0.28..0.30 rows=1 width=14) (actual time=0.002..0.002 rows=1 loops=25)

  • Index Cond: ((code)::text = (ns.okei_code)::text)
50. 0.075 0.075 ↓ 0.0 0 25

Append (cost=0.00..2.12 rows=8 width=106) (actual time=0.003..0.003 rows=0 loops=25)

51. 0.000 0.000 ↓ 0.0 0 25

Seq Scan on nsi_partitional_category nc (cost=0.00..0.00 rows=1 width=410) (actual time=0.000..0.000 rows=0 loops=25)

  • Filter: (((ncchild.root_code)::text = (code)::text) AND (ncchild.classifier_type_id = classifier_type_id))
52. 0.000 0.000 ↓ 0.0 0 25

Index Scan using nsi_partitional_category_1_code_idx on nsi_partitional_category_1 nc_1 (cost=0.41..0.58 rows=1 width=108) (actual time=0.000..0.000 rows=0 loops=25)

  • Index Cond: ((code)::text = (ncchild.root_code)::text)
  • Filter: (ncchild.classifier_type_id = classifier_type_id)
53. 0.000 0.000 ↓ 0.0 0 25

Index Scan using nsi_partitional_category_2_code_idx on nsi_partitional_category_2 nc_2 (cost=0.28..0.30 rows=1 width=73) (actual time=0.000..0.000 rows=0 loops=25)

  • Index Cond: ((code)::text = (ncchild.root_code)::text)
  • Filter: (ncchild.classifier_type_id = classifier_type_id)
54. 0.000 0.000 ↓ 0.0 0 25

Index Scan using nsi_partitional_category_3_code_idx on nsi_partitional_category_3 nc_3 (cost=0.14..0.17 rows=1 width=57) (actual time=0.000..0.000 rows=0 loops=25)

  • Index Cond: ((code)::text = (ncchild.root_code)::text)
  • Filter: (ncchild.classifier_type_id = classifier_type_id)
55. 0.000 0.000 ↓ 0.0 0 25

Index Scan using nsi_partitional_category_4_code_idx on nsi_partitional_category_4 nc_4 (cost=0.12..0.15 rows=1 width=410) (actual time=0.000..0.000 rows=0 loops=25)

  • Index Cond: ((code)::text = (ncchild.root_code)::text)
  • Filter: (ncchild.classifier_type_id = classifier_type_id)
56. 0.000 0.000 ↓ 0.0 0 25

Index Scan using nsi_partitional_category_5_code_idx on nsi_partitional_category_5 nc_5 (cost=0.27..0.29 rows=1 width=152) (actual time=0.000..0.000 rows=0 loops=25)

  • Index Cond: ((code)::text = (ncchild.root_code)::text)
  • Filter: (ncchild.classifier_type_id = classifier_type_id)
57. 0.000 0.000 ↓ 0.0 0 25

Index Scan using nsi_partitional_category_6_code_idx on nsi_partitional_category_6 nc_6 (cost=0.28..0.30 rows=1 width=73) (actual time=0.000..0.000 rows=0 loops=25)

  • Index Cond: ((code)::text = (ncchild.root_code)::text)
  • Filter: (ncchild.classifier_type_id = classifier_type_id)
58. 0.000 0.000 ↓ 0.0 0 25

Index Scan using nsi_partitional_category_7_code_idx on nsi_partitional_category_7 nc_7 (cost=0.28..0.30 rows=1 width=74) (actual time=0.000..0.000 rows=0 loops=25)

  • Index Cond: ((code)::text = (ncchild.root_code)::text)
  • Filter: (ncchild.classifier_type_id = classifier_type_id)
59. 0.000 0.000 ↓ 0.0 0 25

Index Scan using nsi_supplier_position_image_pkey on nsi_supplier_position_image spi (cost=0.29..0.31 rows=1 width=89) (actual time=0.000..0.000 rows=0 loops=25)

  • Index Cond: (id = ns.image_id)
  • Filter: actual
60. 0.050 0.050 ↑ 1.0 1 25

Index Scan using contragents_pkey on contragents dtc (cost=0.42..0.46 rows=1 width=105) (actual time=0.002..0.002 rows=1 loops=25)

  • Index Cond: (id = ns.contragent_id)
  • Filter: (status <> 5)
61. 0.025 0.025 ↓ 0.0 0 25

Index Scan using nsi_supplier_position_regions_position_id_idx on nsi_supplier_position_regions spr (cost=0.42..0.79 rows=21 width=15) (actual time=0.001..0.001 rows=0 loops=25)

  • Index Cond: (position_id = ns.id)
62. 0.000 0.000 ↓ 0.0 0 25

Index Scan using list_okato_code_idx on list_okato dtlo (cost=0.42..0.44 rows=1 width=35) (actual time=0.000..0.000 rows=0 loops=25)

  • Index Cond: ((code)::text = (spr.region_code)::text)
63. 0.000 0.000 ↓ 0.0 0 25

Index Scan using nsi_dictionary_position_image_pkey on nsi_dictionary_position_image adpi (cost=0.14..0.15 rows=1 width=1,036) (actual time=0.000..0.000 rows=0 loops=25)

  • Index Cond: (id = ns.appropriated_image_id)
64. 0.000 0.000 ↓ 0.0 0 25

Index Scan using nsi_supplier_position_image_pkey on nsi_supplier_position_image aspi (cost=0.29..0.31 rows=1 width=89) (actual time=0.000..0.000 rows=0 loops=25)

  • Index Cond: (id = ns.appropriated_image_id)
65. 0.000 0.000 ↓ 0.0 0 25

Index Scan using nsi_customer_position_image_pkey on nsi_customer_position_image acpi (cost=0.14..0.16 rows=1 width=73) (actual time=0.000..0.000 rows=0 loops=25)

  • Index Cond: (id = ns.appropriated_image_id)
66. 0.000 0.000 ↓ 0.0 0 25

Index Scan using nsi_category_classifiers_category_code_classifier_type_idx on nsi_category_classifiers okved2 (cost=0.42..0.46 rows=1 width=17) (actual time=0.000..0.000 rows=0 loops=25)

  • Index Cond: (((category_code)::text = (nc.code)::text) AND (classifier_type = 2))
  • Filter: is_default
67. 0.000 0.000 ↓ 0.0 0 25

Index Scan using nsi_price_order_contracts_pkey on nsi_price_order_contracts dpoc (cost=0.28..0.29 rows=1 width=16) (actual time=0.000..0.000 rows=0 loops=25)

  • Index Cond: (id = dpop.contract_id)
68. 0.050 0.050 ↓ 1.3 4 25

Index Scan using nsi_price_order_contracts_procedure_id_idx on nsi_price_order_contracts dpoc2 (cost=0.28..0.33 rows=3 width=20) (actual time=0.001..0.002 rows=4 loops=25)

  • Index Cond: (procedure_id = dpop.procedure_id)
69. 0.000 0.000 ↓ 0.0 0 49

Index Scan using nsi_contract_contragents_pkey on nsi_contract_contragents dcc (cost=0.28..0.30 rows=1 width=8) (actual time=0.000..0.000 rows=0 loops=49)

  • Index Cond: (id = dpoc.customer_contragent_id)
70. 0.049 0.049 ↑ 1.0 1 49

Index Scan using nsi_contract_contragents_pkey on nsi_contract_contragents dcc2 (cost=0.28..0.30 rows=1 width=8) (actual time=0.001..0.001 rows=1 loops=49)

  • Index Cond: (id = dpoc2.customer_contragent_id)
Planning time : 85.394 ms