explain.depesz.com

PostgreSQL's explain analyze made readable

Result: Mb85 : Original

Settings
# exclusive inclusive rows x rows loops node
1. 0.588 704.225 ↓ 3.6 144 1

Sort (cost=80,320.34..80,320.44 rows=40 width=85) (actual time=704.214..704.225 rows=144 loops=1)

  • Sort Key: street, ((COALESCE(NULLIF((street_number)::text, ''::text), '-1'::text))::integer), letter, postalcode, locality
  • Sort Method: quicksort Memory: 45kB
2. 0.134 703.637 ↓ 3.6 144 1

Group (cost=80,317.87..80,319.27 rows=40 width=85) (actual time=703.417..703.637 rows=144 loops=1)

  • Group Key: street, street_number, extra_number, letter, premise, postalcode, locality, address_type, uuid, municipality_area
3. 0.615 703.503 ↓ 3.6 144 1

Sort (cost=80,317.87..80,317.97 rows=40 width=81) (actual time=703.414..703.503 rows=144 loops=1)

  • Sort Key: street, street_number, extra_number, letter, premise, postalcode, locality, address_type, uuid, municipality_area
  • Sort Method: quicksort Memory: 45kB
4. 694.121 702.888 ↓ 3.6 144 1

Bitmap Heap Scan on valid_addresses_se a (cost=723.34..80,316.81 rows=40 width=81) (actual time=16.768..702.888 rows=144 loops=1)

  • Recheck Cond: (((locality_ix)::text = 'umeaa'::text) OR ((postalcode)::text ~~ '903%'::text))
  • Filter: ((((locality_ix)::text = 'umeaa'::text) OR ((postalcode)::text ~~ '903%'::text)) AND ((address_type = 'NA'::bpchar) OR (address_type = 'NB'::bpchar) OR (address_type = 'NC'::bpchar)) AND (((street_ix)::text = 'sandbeckav'::text) OR (((street)::text % 'Sandbeckav'::text) AND ((levenshtein('sandbeckav'::text, lower((street)::text), 1, 1, 2) <= 3) OR (similarity('sandbeckav'::text, lower((street)::text)) >= '0.5'::double precision))) OR ((street_ix)::text = 'sandbeckavaegen'::text) OR (((street)::text % 'Sandbeckavägen'::text) AND ((levenshtein('sandbeckavägen'::text, lower((street)::text), 1, 1, 2) <= 3) OR (similarity('sandbeckavägen'::text, lower((street)::text)) >= '0.5'::double precision))) OR ((street_ix)::text = 'sandbeckavaeg'::text) OR (((street)::text % 'Sandbeckaväg'::text) AND ((levenshtein('sandbeckaväg'::text, lower((street)::text), 1, 1, 2) <= 3) OR (similarity('sandbeckaväg'::text, lower((street)::text)) >= '0.5'::double precision)))))
  • Rows Removed by Filter: 29000
  • Heap Blocks: exact=26200
5. 0.002 8.767 ↓ 0.0 0 1

BitmapOr (cost=723.34..723.34 rows=33,961 width=0) (actual time=8.767..8.767 rows=0 loops=1)

6. 7.313 7.313 ↑ 1.1 29,144 1

Bitmap Index Scan on valid_addresses_se_locality_ix_like (cost=0.00..687.89 rows=32,461 width=0) (actual time=7.313..7.313 rows=29,144 loops=1)

  • Index Cond: ((locality_ix)::text = 'umeaa'::text)
7. 1.452 1.452 ↓ 5.4 8,076 1

Bitmap Index Scan on valid_addresses_se_postalcode_ix_like (cost=0.00..35.43 rows=1,500 width=0) (actual time=1.452..1.452 rows=8,076 loops=1)