explain.depesz.com

PostgreSQL's explain analyze made readable

Result: TtwF

Settings
# exclusive inclusive rows x rows loops node
1. 11,928.814 19,342.296 ↑ 1,085,301.0 36 1

Hash Semi Join (cost=97,784,592.10..102,723,337.88 rows=39,070,836 width=38) (actual time=18,694.465..19,342.296 rows=36 loops=1)

  • Output: cc.id, cc.first_name, cc.last_name, cc.original_name
  • Hash Cond: (cc.id = cc_subq.id)
  • Buffers: shared hit=417418, temp read=8422 written=236408
2. 7,240.718 7,240.718 ↑ 1.0 39,070,835 1

Seq Scan on public.contributions_contributors cc (cost=0.00..797,518.36 rows=39,070,836 width=38) (actual time=0.007..7,240.718 rows=39,070,835 loops=1)

  • Output: cc.id, cc.first_name, cc.last_name, cc.original_name
  • Buffers: shared hit=406810
3. 0.856 172.764 ↑ 2,533,255.3 36 1

Hash (cost=96,288,387.20..96,288,387.20 rows=91,197,192 width=4) (actual time=172.764..172.764 rows=36 loops=1)

  • Output: cc_subq.id
  • Buckets: 262144 Batches: 1024 Memory Usage: 2048kB
  • Buffers: shared hit=10608
4. 0.327 171.908 ↑ 2,533,255.3 36 1

Nested Loop (cost=3,260.73..96,288,387.20 rows=91,197,192 width=4) (actual time=22.407..171.908 rows=36 loops=1)

  • Output: cc_subq.id
  • Buffers: shared hit=10608
5. 0.059 0.059 ↑ 1.0 234 1

Seq Scan on public.similar_names_dev sm (cost=0.00..4.34 rows=234 width=7) (actual time=0.016..0.059 rows=234 loops=1)

  • Output: sm.name
  • Buffers: shared hit=2
6. 0.234 171.522 ↓ 0.0 0 234

Bitmap Heap Scan on public.contributions_contributors cc_subq (cost=3,260.73..407,591.50 rows=389,732 width=38) (actual time=0.733..0.733 rows=0 loops=234)

  • Output: cc_subq.id, cc_subq.first_name, cc_subq.last_name, cc_subq.middle_name, cc_subq.suffix_name, cc_subq.original_name, cc_subq.name_parsed, cc_subq.occupation, cc_subq.employer, cc_subq.is_individual, cc_subq.address_id
  • Recheck Cond: ((to_tsvector('simple'::regconfig, (cc_subq.original_name)::text) @@ plainto_tsquery('simple'::regconfig, (((sm.name)::text || ' '::text) || 'Jon'::text))) OR (to_tsvector('simple'::regconfig, (((cc_subq.first_name)::text || ' '::text) || (cc_subq.last_name)::text)) @@ plainto_tsquery('simple'::regconfig, (((sm.name)::text || ' '::text) || 'Jon'::text))))
  • Heap Blocks: exact=36
  • Buffers: shared hit=10606
7. 1.638 171.288 ↓ 0.0 0 234

BitmapOr (cost=3,260.73..3,260.73 rows=390,708 width=0) (actual time=0.732..0.732 rows=0 loops=234)

  • Buffers: shared hit=10570
8. 115.362 115.362 ↓ 0.0 0 234

Bitmap Index Scan on ix_contributions_contributors_original_name_tsv_simple (cost=0.00..1,537.31 rows=195,354 width=0) (actual time=0.493..0.493 rows=0 loops=234)

  • Index Cond: (to_tsvector('simple'::regconfig, (cc_subq.original_name)::text) @@ plainto_tsquery('simple'::regconfig, (((sm.name)::text || ' '::text) || 'Jon'::text)))
  • Buffers: shared hit=6595
9. 54.288 54.288 ↓ 0.0 0 234

Bitmap Index Scan on ix_contributions_contributors_name_tsv_simple (cost=0.00..1,528.55 rows=195,354 width=0) (actual time=0.232..0.232 rows=0 loops=234)

  • Index Cond: (to_tsvector('simple'::regconfig, (((cc_subq.first_name)::text || ' '::text) || (cc_subq.last_name)::text)) @@ plainto_tsquery('simple'::regconfig, (((sm.name)::text || ' '::text) || 'Jon'::text)))
  • Buffers: shared hit=3975
Planning time : 2.126 ms
Execution time : 19,342.433 ms