explain.depesz.com

PostgreSQL's explain analyze made readable

Result: hDVS

Settings
# exclusive inclusive rows x rows loops node
1. 3.250 3,268.339 ↑ 1.4 6,710 1

Unique (cost=866,107.58..867,056.94 rows=9,262 width=380) (actual time=3,264.772..3,268.339 rows=6,710 loops=1)

  • Output: 'TAKSY'::text, tbl.project, eft.partner_code, eft.document_type, eft.circuit, eft.document_number, eft.document_issue, eft.version, eft.number_from, eft.number_to, tbl.v_instal, tbl.wire_type, (concat(tbl.wire_ata, tbl.wire_subata, tbl.wire_separator, tbl.wire_number)), tbl.wire_vu, tbl.wire_color, tbl.wire_phase, tbl.from_fin_quad_cable_direction, (concat(tbl.from_fin_sequence_number, tbl.from_fin_circuit, tbl.from_fin_suffix, tbl.from_fin_appendent, tbl.from_fin_supplementary)), tbl.from_pin, tbl.from_shunt, tbl.from_module, tbl.route, tbl.record_issue, tbl.to_fin_quad_cable_direction, (concat(tbl.to_fin_sequence_number, tbl.to_fin_circuit, tbl.to_fin_suffix, tbl.to_fin_appendent, tbl.to_fin_supplementary)), tbl.to_pin, tbl.to_shunt, tbl.to_module, tbl.wire_twist, tbl.ata_reference, tbl.seal_1, tbl.seal_2, tbl.seal_3, tbl.seal_4, tbl.seal_5, tbl.t_1, tbl.t_2, tbl.t_3, tbl.t_4, tbl.t_5, tbl.is_sensitive
  • Buffers: shared hit=134,600 read=531,575, temp read=3,141 written=3,111
2. 26.076 3,265.089 ↑ 1.4 6,710 1

Sort (cost=866,107.58..866,130.74 rows=9,262 width=380) (actual time=3,264.771..3,265.089 rows=6,710 loops=1)

  • Output: 'TAKSY'::text, tbl.project, eft.partner_code, eft.document_type, eft.circuit, eft.document_number, eft.document_issue, eft.version, eft.number_from, eft.number_to, tbl.v_instal, tbl.wire_type, (concat(tbl.wire_ata, tbl.wire_subata, tbl.wire_separator, tbl.wire_number)), tbl.wire_vu, tbl.wire_color, tbl.wire_phase, tbl.from_fin_quad_cable_direction, (concat(tbl.from_fin_sequence_number, tbl.from_fin_circuit, tbl.from_fin_suffix, tbl.from_fin_appendent, tbl.from_fin_supplementary)), tbl.from_pin, tbl.from_shunt, tbl.from_module, tbl.route, tbl.record_issue, tbl.to_fin_quad_cable_direction, (concat(tbl.to_fin_sequence_number, tbl.to_fin_circuit, tbl.to_fin_suffix, tbl.to_fin_appendent, tbl.to_fin_supplementary)), tbl.to_pin, tbl.to_shunt, tbl.to_module, tbl.wire_twist, tbl.ata_reference, tbl.seal_1, tbl.seal_2, tbl.seal_3, tbl.seal_4, tbl.seal_5, tbl.t_1, tbl.t_2, tbl.t_3, tbl.t_4, tbl.t_5, tbl.is_sensitive
  • Sort Key: (concat(tbl.wire_ata, tbl.wire_subata, tbl.wire_separator, tbl.wire_number)), tbl.project, eft.partner_code, eft.document_type, eft.circuit, eft.document_number, eft.document_issue, eft.version, eft.number_from, eft.number_to, tbl.v_instal, tbl.wire_type, tbl.wire_vu, tbl.wire_color, tbl.wire_phase, tbl.from_fin_quad_cable_direction, (concat(tbl.from_fin_sequence_number, tbl.from_fin_circuit, tbl.from_fin_suffix, tbl.from_fin_appendent, tbl.from_fin_supplementary)), tbl.from_pin, tbl.from_shunt, tbl.from_module, tbl.route, tbl.record_issue, tbl.to_fin_quad_cable_direction, (concat(tbl.to_fin_sequence_number, tbl.to_fin_circuit, tbl.to_fin_suffix, tbl.to_fin_appendent, tbl.to_fin_supplementary)), tbl.to_pin, tbl.to_shunt, tbl.to_module, tbl.wire_twist, tbl.ata_reference, tbl.seal_1, tbl.seal_2, tbl.seal_3, tbl.seal_4, tbl.seal_5, tbl.t_1, tbl.t_2, tbl.t_3, tbl.t_4, tbl.t_5, tbl.is_sensitive
  • Sort Method: quicksort Memory: 1,694kB
  • Buffers: shared hit=134,600 read=531,575, temp read=3,141 written=3,111
3. 1,210.649 3,239.013 ↑ 1.4 6,710 1

Hash Join (cost=754,968.03..865,497.35 rows=9,262 width=380) (actual time=2,697.260..3,239.013 rows=6,710 loops=1)

  • Output: 'TAKSY'::text, tbl.project, eft.partner_code, eft.document_type, eft.circuit, eft.document_number, eft.document_issue, eft.version, eft.number_from, eft.number_to, tbl.v_instal, tbl.wire_type, concat(tbl.wire_ata, tbl.wire_subata, tbl.wire_separator, tbl.wire_number), tbl.wire_vu, tbl.wire_color, tbl.wire_phase, tbl.from_fin_quad_cable_direction, concat(tbl.from_fin_sequence_number, tbl.from_fin_circuit, tbl.from_fin_suffix, tbl.from_fin_appendent, tbl.from_fin_supplementary), tbl.from_pin, tbl.from_shunt, tbl.from_module, tbl.route, tbl.record_issue, tbl.to_fin_quad_cable_direction, concat(tbl.to_fin_sequence_number, tbl.to_fin_circuit, tbl.to_fin_suffix, tbl.to_fin_appendent, tbl.to_fin_supplementary), tbl.to_pin, tbl.to_shunt, tbl.to_module, tbl.wire_twist, tbl.ata_reference, tbl.seal_1, tbl.seal_2, tbl.seal_3, tbl.seal_4, tbl.seal_5, tbl.t_1, tbl.t_2, tbl.t_3, tbl.t_4, tbl.t_5, tbl.is_sensitive
  • Hash Cond: (eft.document_number = (tbl.document_number)::bpchar)
  • Buffers: shared hit=134,600 read=531,575, temp read=3,141 written=3,111
4. 0.000 16.379 ↑ 1.0 589 1

Gather (cost=1,000.00..103,916.36 rows=609 width=40) (actual time=16.051..16.379 rows=589 loops=1)

  • Output: eft.partner_code, eft.document_type, eft.circuit, eft.document_number, eft.document_issue, eft.version, eft.number_from, eft.number_to
  • Workers Planned: 2
  • Workers Launched: 2
  • Buffers: shared hit=87,978
5. 167.862 167.862 ↑ 1.3 196 3 / 3

Parallel Seq Scan on import.taksy_tc73e_a320_ad eft (cost=0.00..102,855.46 rows=254 width=40) (actual time=5.412..167.862 rows=196 loops=3)

  • Output: eft.partner_code, eft.document_type, eft.circuit, eft.document_number, eft.document_issue, eft.version, eft.number_from, eft.number_to
  • Filter: ((((eft.version)::text = 'THY06'::text) AND (eft.number_from <= 1) AND (eft.number_to >= 1)) OR (((eft.version)::text = 'ST08'::text) AND (eft.number_from <= 2) AND (eft.number_to >= 2)) OR (((eft.version)::text = '8Y*'::text) AND (eft.number_from <= 8,155) AND (eft.number_to >= 8,155)))
  • Rows Removed by Filter: 365,322
  • Buffers: shared hit=87,978
  • Worker 0: actual time=0.391..243.655 rows=300 loops=1
  • Buffers: shared hit=36,565
  • Worker 1: actual time=0.186..244.262 rows=288 loops=1
  • Buffers: shared hit=36,655
6. 184.061 2,011.985 ↓ 1.2 241,446 1

Hash (cost=744,281.52..744,281.52 rows=195,241 width=280) (actual time=2,011.985..2,011.985 rows=241,446 loops=1)

  • Output: tbl.project, tbl.v_instal, tbl.wire_type, tbl.wire_ata, tbl.wire_subata, tbl.wire_separator, tbl.wire_number, tbl.wire_vu, tbl.wire_color, tbl.wire_phase, tbl.from_fin_quad_cable_direction, tbl.from_fin_sequence_number, tbl.from_fin_circuit, tbl.from_fin_suffix, tbl.from_fin_appendent, tbl.from_fin_supplementary, tbl.from_pin, tbl.from_shunt, tbl.from_module, tbl.route, tbl.record_issue, tbl.to_fin_quad_cable_direction, tbl.to_fin_sequence_number, tbl.to_fin_circuit, tbl.to_fin_suffix, tbl.to_fin_appendent, tbl.to_fin_supplementary, tbl.to_pin, tbl.to_shunt, tbl.to_module, tbl.wire_twist, tbl.ata_reference, tbl.seal_1, tbl.seal_2, tbl.seal_3, tbl.seal_4, tbl.seal_5, tbl.t_1, tbl.t_2, tbl.t_3, tbl.t_4, tbl.t_5, tbl.is_sensitive, tbl.document_number
  • Buckets: 16,384 Batches: 16 Memory Usage: 1,986kB
  • Buffers: shared hit=46,622 read=531,575, temp written=3,081
7. 187.594 1,827.924 ↓ 1.2 241,446 1

Hash Join (cost=695,805.88..744,281.52 rows=195,241 width=280) (actual time=1,528.658..1,827.924 rows=241,446 loops=1)

  • Output: tbl.project, tbl.v_instal, tbl.wire_type, tbl.wire_ata, tbl.wire_subata, tbl.wire_separator, tbl.wire_number, tbl.wire_vu, tbl.wire_color, tbl.wire_phase, tbl.from_fin_quad_cable_direction, tbl.from_fin_sequence_number, tbl.from_fin_circuit, tbl.from_fin_suffix, tbl.from_fin_appendent, tbl.from_fin_supplementary, tbl.from_pin, tbl.from_shunt, tbl.from_module, tbl.route, tbl.record_issue, tbl.to_fin_quad_cable_direction, tbl.to_fin_sequence_number, tbl.to_fin_circuit, tbl.to_fin_suffix, tbl.to_fin_appendent, tbl.to_fin_supplementary, tbl.to_pin, tbl.to_shunt, tbl.to_module, tbl.wire_twist, tbl.ata_reference, tbl.seal_1, tbl.seal_2, tbl.seal_3, tbl.seal_4, tbl.seal_5, tbl.t_1, tbl.t_2, tbl.t_3, tbl.t_4, tbl.t_5, tbl.is_sensitive, tbl.document_number
  • Inner Unique: true
  • Hash Cond: ((tbl.v_instal)::text = (tbl_1.harness)::text)
  • Buffers: shared hit=46,622 read=531,575
8. 111.694 111.694 ↓ 1.0 629,298 1

Seq Scan on import.taksy_tc40e_a320_ad tbl (cost=0.00..46,833.45 rows=624,036 width=280) (actual time=0.008..111.694 rows=629,298 loops=1)

  • Output: tbl.action, tbl."createdAt", tbl."updatedAt", tbl."seenAt", tbl.project, tbl.document_number, tbl.circuit, tbl.document_issue, tbl.release_status, tbl.wire_ata, tbl.wire_subata, tbl.wire_separator, tbl.wire_number, tbl.wire_vu, tbl.wire_color, tbl.wire_phase, tbl.wire_type, tbl.from_fin_quad_cable_direction, tbl.from_fin_sequence_number, tbl.from_fin_circuit, tbl.from_fin_suffix, tbl.from_fin_appendent, tbl.from_fin_supplementary, tbl.from_pin, tbl.from_module, tbl.from_shunt, tbl.route, tbl.v_instal, tbl.record_issue, tbl.to_fin_quad_cable_direction, tbl.to_fin_sequence_number, tbl.to_fin_circuit, tbl.to_fin_suffix, tbl.to_fin_appendent, tbl.to_fin_supplementary, tbl.to_pin, tbl.to_module, tbl.to_shunt, tbl.ata_reference, tbl.wire_twist, tbl.seal_1, tbl.seal_2, tbl.seal_3, tbl.seal_4, tbl.seal_5, tbl.t_1, tbl.t_2, tbl.t_3, tbl.t_4, tbl.t_5, tbl.is_sensitive
  • Filter: ((tbl.action)::text <> 'DELETE'::text)
  • Buffers: shared hit=39,033
9. 0.024 1,528.636 ↑ 3.4 155 1

Hash (cost=695,799.25..695,799.25 rows=530 width=7) (actual time=1,528.636..1,528.636 rows=155 loops=1)

  • Output: tbl_1.harness
  • Buckets: 1,024 Batches: 1 Memory Usage: 14kB
  • Buffers: shared hit=7,589 read=531,575
10. 0.451 1,528.612 ↑ 3.4 155 1

Unique (cost=695,712.04..695,793.95 rows=530 width=7) (actual time=1,527.910..1,528.612 rows=155 loops=1)

  • Output: tbl_1.harness
  • Buffers: shared hit=7,589 read=531,575
11. 3.797 1,528.161 ↑ 2.5 6,645 1

Sort (cost=695,712.04..695,753.00 rows=16,382 width=7) (actual time=1,527.909..1,528.161 rows=6,645 loops=1)

  • Output: tbl_1.harness
  • Sort Key: tbl_1.harness
  • Sort Method: quicksort Memory: 504kB
  • Buffers: shared hit=7,589 read=531,575
12. 0.993 1,524.364 ↑ 2.5 6,645 1

Nested Loop (cost=1.11..694,565.32 rows=16,382 width=7) (actual time=810.046..1,524.364 rows=6,645 loops=1)

  • Output: tbl_1.harness
  • Buffers: shared hit=7,589 read=531,575
13. 0.017 1,519.879 ↓ 2.1 194 1

Append (cost=0.56..672,899.09 rows=91 width=18) (actual time=810.006..1,519.879 rows=194 loops=1)

  • Buffers: shared hit=6,251 read=531,575
14. 0.001 0.014 ↓ 0.0 0 1

Subquery Scan on *SELECT* 1 (cost=0.56..8.60 rows=1 width=18) (actual time=0.013..0.014 rows=0 loops=1)

  • Output: "*SELECT* 1".partnumber
  • Buffers: shared hit=4
15. 0.013 0.013 ↓ 0.0 0 1

Index Scan using idx_taksy_tc39s_a320_ad_msn on import.taksy_tc39s_a320_ad (cost=0.56..8.59 rows=1 width=60) (actual time=0.013..0.013 rows=0 loops=1)

  • Output: taksy_tc39s_a320_ad.partnumber, NULL::character varying(8), NULL::integer, NULL::integer
  • Index Cond: ((taksy_tc39s_a320_ad.msn <= 8,155) AND (taksy_tc39s_a320_ad.msn >= 8,155))
  • Filter: (((taksy_tc39s_a320_ad.action)::text <> 'TO_BE_DELETED'::text) AND ((taksy_tc39s_a320_ad.partnumber)::text ~~ concat('%', 'E929', '%')))
  • Buffers: shared hit=4
16. 0.000 1,519.848 ↓ 2.2 194 1

Subquery Scan on *SELECT* 2 (cost=1,000.00..672,890.49 rows=90 width=18) (actual time=809.991..1,519.848 rows=194 loops=1)

  • Output: "*SELECT* 2".partnumber
  • Buffers: shared hit=6,247 read=531,575
17. 23.925 1,519.879 ↓ 2.2 194 1

Gather (cost=1,000.00..672,889.59 rows=90 width=60) (actual time=809.990..1,519.879 rows=194 loops=1)

  • Output: taksy_tc13g_a320_ad.partnumber, NULL::character varying(8), NULL::integer, NULL::integer
  • Workers Planned: 2
  • Workers Launched: 2
  • Buffers: shared hit=6,247 read=531,575
18. 1,495.954 1,495.954 ↓ 1.7 65 3 / 3

Parallel Seq Scan on import.taksy_tc13g_a320_ad (cost=0.00..671,880.59 rows=38 width=60) (actual time=782.371..1,495.954 rows=65 loops=3)

  • Output: taksy_tc13g_a320_ad.partnumber, NULL::character varying(8), NULL::integer, NULL::integer
  • Filter: (((taksy_tc13g_a320_ad.action)::text <> 'TO_BE_DELETED'::text) AND (taksy_tc13g_a320_ad.from_msn <= 8,155) AND (taksy_tc13g_a320_ad.to_msn >= 8,155) AND ((taksy_tc13g_a320_ad.partnumber)::text ~~ concat('%', 'E929', '%')))
  • Rows Removed by Filter: 4,742,390
  • Buffers: shared hit=6,247 read=531,575
  • Worker 0: actual time=768.228..1483.809 rows=95 loops=1
  • Buffers: shared hit=1,914 read=163,561
  • Worker 1: actual time=769.189..1484.727 rows=88 loops=1
  • Buffers: shared hit=2,028 read=173,159
19. 3.492 3.492 ↑ 5.3 34 194

Index Scan using idx_taksy_tc21e_a320_ad_doc_no on import.taksy_tc21e_a320_ad tbl_1 (cost=0.55..236.29 rows=180 width=25) (actual time=0.010..0.018 rows=34 loops=194)

  • Output: tbl_1.action, tbl_1."createdAt", tbl_1."updatedAt", tbl_1."seenAt", tbl_1.project, tbl_1.document_number, tbl_1.release_status, tbl_1.issue, tbl_1.harness, tbl_1.wire_type, tbl_1.item, tbl_1.wire_type_ident_number, tbl_1.wire_type_part_number, tbl_1.conn_means_sleeve, tbl_1.wire_type_total_length, tbl_1.wire_ata, tbl_1.wire_subata, tbl_1.wire_separator, tbl_1.wire_number, tbl_1.wire_vu, tbl_1.wire_color, tbl_1.wire_phase, tbl_1.wire_length, tbl_1.wire_twist, tbl_1.route, tbl_1.from_fin_sequence_number, tbl_1.from_fin_circuit, tbl_1.from_fin_suffix, tbl_1.from_fin_appendent, tbl_1.from_fin_supplementary, tbl_1.from_pin, tbl_1.from_shunt, tbl_1.from_shielding, tbl_1.from_skydrol_sleeve, tbl_1.to_fin_sequence_number, tbl_1.to_fin_circuit, tbl_1.to_fin_suffix, tbl_1.to_fin_appendent, tbl_1.to_fin_supplementary, tbl_1.to_pin, tbl_1.to_shunt, tbl_1.to_shielding, tbl_1.to_skydrol_sleeve, tbl_1.from_fin_quad_cable_direction, tbl_1.to_fin_quad_cable_direction, tbl_1.seal_1, tbl_1.seal_2, tbl_1.seal_3, tbl_1.seal_4, tbl_1.seal_5, tbl_1.t_1, tbl_1.t_2, tbl_1.t_3, tbl_1.t_4, tbl_1.t_5, tbl_1.conn_means_special_sleeve, tbl_1.conn_means_circuit, tbl_1.conn_means_ce_1_from_eq, tbl_1.conn_means_ce_2_from_eq, tbl_1.conn_means_ce_1_to_eq, tbl_1.conn_means_ce_2_to_eq, tbl_1.taksy_change_date, tbl_1.sensitive_wire, tbl_1.short_wire, tbl_1.kz_huelse_1, tbl_1.kz_huelse_star, tbl_1.wirematic_routing, tbl_1.flighttest_manufacturing, tbl_1.kz_huelse_2, tbl_1.not_used, tbl_1.ata_ref_shield
  • Index Cond: ((tbl_1.document_number)::text = ("*SELECT* 1".partnumber)::text)
  • Filter: ((tbl_1.action)::text <> 'TO_BE_DELETED'::text)
  • Buffers: shared hit=1,338