explain.depesz.com

PostgreSQL's explain analyze made readable

Result: yMUf

Settings
# exclusive inclusive rows x rows loops node
1. 10.753 203.405 ↓ 2.0 31,237 1

Gather (cost=1,789.29..157,242.04 rows=15,317 width=24) (actual time=26.105..203.405 rows=31,237 loops=1)

  • Workers Planned: 2
  • Workers Launched: 2
2. 9.566 192.652 ↓ 1.6 10,412 3 / 3

Nested Loop (cost=789.29..154,710.34 rows=6,382 width=24) (actual time=21.485..192.652 rows=10,412 loops=3)

3. 4.260 151.849 ↓ 1.6 10,412 3 / 3

Nested Loop (cost=788.86..151,390.53 rows=6,382 width=8) (actual time=21.474..151.849 rows=10,412 loops=3)

4. 7.347 78.803 ↓ 2.3 22,929 3 / 3

Nested Loop (cost=788.43..146,528.55 rows=9,892 width=8) (actual time=21.458..78.803 rows=22,929 loops=3)

5. 23.721 31.069 ↓ 1.5 8,077 3 / 3

Parallel Bitmap Heap Scan on address a (cost=788.00..33,582.17 rows=5,519 width=8) (actual time=21.442..31.069 rows=8,077 loops=3)

  • Recheck Cond: (((lower((state)::text) = 'ny'::text) AND (lower((city)::text) = 'new york'::text)) OR (""left""((postal)::text, 5) = '10019'::text))
  • Heap Blocks: exact=5815
6. 0.000 7.348 ↓ 0.0 0 1 / 3

BitmapOr (cost=788.00..788.00 rows=13,245 width=0) (actual time=22.045..22.045 rows=0 loops=1)

7. 0.964 7.317 ↓ 0.0 0 1 / 3

BitmapAnd (cost=537.42..537.42 rows=66 width=0) (actual time=21.951..21.951 rows=0 loops=1)

8. 5.017 5.017 ↓ 11.9 156,177 1 / 3

Bitmap Index Scan on address_ix2 (cost=0.00..247.27 rows=13,179 width=0) (actual time=15.050..15.050 rows=156,177 loops=1)

  • Index Cond: (lower((state)::text) = 'ny'::text)
9. 1.336 1.336 ↓ 1.8 24,233 1 / 3

Bitmap Index Scan on address_ix3 (cost=0.00..283.27 rows=13,179 width=0) (actual time=4.009..4.009 rows=24,233 loops=1)

  • Index Cond: (lower((city)::text) = 'new york'::text)
10. 0.031 0.031 ↑ 10.9 1,207 1 / 3

Bitmap Index Scan on address_ix4 (cost=0.00..247.27 rows=13,179 width=0) (actual time=0.094..0.094 rows=1,207 loops=1)

  • Index Cond: (""left""((postal)::text, 5) = '10019'::text)
11. 40.387 40.387 ↑ 7.0 3 24,232 / 3

Index Scan using place_description_version_ix3 on place_description_version v (cost=0.43..20.26 rows=21 width=16) (actual time=0.004..0.005 rows=3 loops=24,232)

  • Index Cond: (address_id = a.id)
12. 68.786 68.786 ↓ 0.0 0 68,786 / 3

Index Scan using place_description_current_version_pointer_ix2 on place_description_current_version_pointer cvp (cost=0.43..0.48 rows=1 width=16) (actual time=0.003..0.003 rows=0 loops=68,786)

  • Index Cond: (place_description_version_id = v.id)
13. 31.237 31.237 ↑ 1.0 1 31,237 / 3

Index Scan using place_description_pkey on place_description e (cost=0.43..0.52 rows=1 width=24) (actual time=0.003..0.003 rows=1 loops=31,237)

  • Index Cond: (id = cvp.place_description_id)