explain.depesz.com

PostgreSQL's explain analyze made readable

Result: RyCU

Settings
# exclusive inclusive rows x rows loops node
1. 0.073 0.397 ↓ 2.0 2 1

Sort (cost=45.43..45.44 rows=1 width=573) (actual time=0.396..0.397 rows=2 loops=1)

  • Output: c.id, c.fio, (concat_ws(' '::text, split_part((spr1."values")::text, '|'::text, 1), split_part((spr2."values")::text, '|'::text, 1), split_part((spr3."values")::text, '|'::text, 1))), spr1."values", spr2."values", spr3."values", c.id, c.f, c.i, c.o, c.sex, c.birth_date, c.dul, c.fio, c.fio_rp, c.fio_en, c.fi1o1, c.fi1o1_en, c.fi_en, c.adress
  • Sort Key: (concat_ws(' '::text, split_part((spr1."values")::text, '|'::text, 1), split_part((spr2."values")::text, '|'::text, 1), split_part((spr3."values")::text, '|'::text, 1)))
  • Sort Method: quicksort Memory: 27kB
  • Buffers: shared hit=90
2. 0.045 0.324 ↓ 2.0 2 1

Nested Loop (cost=3.08..45.42 rows=1 width=573) (actual time=0.214..0.324 rows=2 loops=1)

  • Output: c.id, c.fio, concat_ws(' '::text, split_part((spr1."values")::text, '|'::text, 1), split_part((spr2."values")::text, '|'::text, 1), split_part((spr3."values")::text, '|'::text, 1)), spr1."values", spr2."values", spr3."values", c.id, c.f, c.i, c.o, c.sex, c.birth_date, c.dul, c.fio, c.fio_rp, c.fio_en, c.fi1o1, c.fi1o1_en, c.fi_en, c.adress
  • Buffers: shared hit=90
3. 0.005 0.249 ↓ 6.0 6 1

Nested Loop (cost=2.80..43.58 rows=1 width=473) (actual time=0.166..0.249 rows=6 loops=1)

  • Output: c.id, c.fio, c.f, c.i, c.o, c.sex, c.birth_date, c.dul, c.fio_rp, c.fio_en, c.fi1o1, c.fi1o1_en, c.fi_en, c.adress, spr1."values", p2.par5, p2.new5, spr3."values
  • Buffers: shared hit=76
4. 0.003 0.232 ↓ 2.0 2 1

Nested Loop (cost=2.24..38.54 rows=1 width=473) (actual time=0.161..0.232 rows=2 loops=1)

  • Output: c.id, c.fio, c.f, c.i, c.o, c.sex, c.birth_date, c.dul, c.fio_rp, c.fio_en, c.fi1o1, c.fi1o1_en, c.fi_en, c.adress, p1.old5, spr1."values", p3.old5, spr3."values
  • Buffers: shared hit=62
5. 0.005 0.193 ↓ 6.0 6 1

Nested Loop (cost=1.96..35.74 rows=1 width=459) (actual time=0.146..0.193 rows=6 loops=1)

  • Output: c.id, c.fio, c.f, c.i, c.o, c.sex, c.birth_date, c.dul, c.fio_rp, c.fio_en, c.fi1o1, c.fi1o1_en, c.fi_en, c.adress, p1.old5, p1.par5, p1.new5, p3.old5, spr3."values
  • Buffers: shared hit=48
6. 0.003 0.176 ↓ 2.0 2 1

Nested Loop (cost=1.40..30.70 rows=1 width=411) (actual time=0.141..0.176 rows=2 loops=1)

  • Output: c.id, c.fio, c.f, c.i, c.o, c.sex, c.birth_date, c.dul, c.fio_rp, c.fio_en, c.fi1o1, c.fi1o1_en, c.fi_en, c.adress, p3.old5, spr3."values
  • Buffers: shared hit=34
7. 0.035 0.131 ↓ 2.0 6 1

Nested Loop (cost=1.13..25.22 rows=3 width=397) (actual time=0.109..0.131 rows=6 loops=1)

  • Output: c.id, c.fio, c.f, c.i, c.o, c.sex, c.birth_date, c.dul, c.fio_rp, c.fio_en, c.fi1o1, c.fi1o1_en, c.fi_en, c.adress, p3.old5, p3.par5, p3.new5
  • Buffers: shared hit=20
8. 0.076 0.076 ↓ 2.0 2 1

Index Scan using inddev_client_fio_idx on public.inddev_client c (cost=0.56..8.57 rows=1 width=349) (actual time=0.072..0.076 rows=2 loops=1)

  • Output: c.id, c.f, c.i, c.o, c.sex, c.birth_date, c.dul, c.fio, c.fio_rp, c.fio_en, c.fi1o1, c.fi1o1_en, c.fi_en, c.adress
  • Index Cond: ((c.fio)::text = 'Ладомирский Валентин Назарович'::text)
  • Buffers: shared hit=6
9. 0.020 0.020 ↑ 1.0 3 2

Index Scan using inddev_para_old5_idx on public.inddev_para p3 (cost=0.57..16.61 rows=3 width=48) (actual time=0.007..0.010 rows=3 loops=2)

  • Output: p3.id, p3.old5, p3.new5, p3.par5
  • Index Cond: (p3.old5 = (md5((c.fio)::text))::uuid)
  • Buffers: shared hit=14
10. 0.042 0.042 ↓ 0.0 0 6

Index Scan using inddev_spr_pattern_id_uuid_idx on public.inddev_spr spr3 (cost=0.28..1.82 rows=1 width=54) (actual time=0.006..0.007 rows=0 loops=6)

  • Output: spr3.id, spr3."values", spr3.pattern_id
  • Index Cond: ((spr3.pattern_id = 5) AND ((md5((spr3.id)::text))::uuid = p3.new5))
  • Filter: (p3.par5 = (md5((spr3.pattern_id)::text))::uuid)
  • Buffers: shared hit=14
11. 0.012 0.012 ↑ 1.0 3 2

Index Scan using inddev_para_old5_idx on public.inddev_para p1 (cost=0.56..5.01 rows=3 width=48) (actual time=0.005..0.006 rows=3 loops=2)

  • Output: p1.id, p1.old5, p1.new5, p1.par5
  • Index Cond: (p1.old5 = p3.old5)
  • Buffers: shared hit=14
12. 0.036 0.036 ↓ 0.0 0 6

Index Scan using inddev_spr_pattern_id_uuid_idx on public.inddev_spr spr1 (cost=0.28..2.79 rows=1 width=54) (actual time=0.006..0.006 rows=0 loops=6)

  • Output: spr1.id, spr1."values", spr1.pattern_id
  • Index Cond: ((spr1.pattern_id = 1) AND ((md5((spr1.id)::text))::uuid = p1.new5))
  • Filter: (p1.par5 = (md5((spr1.pattern_id)::text))::uuid)
  • Buffers: shared hit=14
13. 0.012 0.012 ↑ 1.0 3 2

Index Scan using inddev_para_old5_idx on public.inddev_para p2 (cost=0.56..5.01 rows=3 width=48) (actual time=0.004..0.006 rows=3 loops=2)

  • Output: p2.id, p2.old5, p2.new5, p2.par5
  • Index Cond: (p2.old5 = p1.old5)
  • Buffers: shared hit=14
14. 0.030 0.030 ↓ 0.0 0 6

Index Scan using inddev_spr_pattern_id_uuid_idx on public.inddev_spr spr2 (cost=0.28..1.82 rows=1 width=54) (actual time=0.005..0.005 rows=0 loops=6)

  • Output: spr2.id, spr2."values", spr2.pattern_id
  • Index Cond: ((spr2.pattern_id = 3) AND ((md5((spr2.id)::text))::uuid = p2.new5))
  • Filter: (p2.par5 = (md5((spr2.pattern_id)::text))::uuid)
  • Buffers: shared hit=14