explain.depesz.com

PostgreSQL's explain analyze made readable

Result: GKNh

Settings
# exclusive inclusive rows x rows loops node
1. 0.000 0.000 ↓ 0.0

Insert on transactions (cost=9,635,994.19..9,691,324.48 rows=3,461 width=319) (actual rows= loops=)

2. 0.000 0.000 ↓ 0.0

Merge Join (cost=9,635,994.19..9,691,289.87 rows=3,461 width=319) (actual rows= loops=)

  • Merge Cond: (tax.pid = rec.pid)
3. 0.000 0.000 ↓ 0.0

Unique (cost=8,841,025.47..8,880,848.76 rows=1,225,332 width=140) (actual rows= loops=)

4. 0.000 0.000 ↓ 0.0

Sort (cost=8,841,025.47..8,844,088.80 rows=1,225,332 width=140) (actual rows= loops=)

  • Sort Key: tax.pid, tax.fips, tax.property_type, tax.square_footage, tax.year_built, tax.tax_assessed_value, tax.tax_improvement_value, tax.tax_land_value, tax.tax_improvement_percent, tax.last_sale_date, tax.prior_sale_date, tax.company_flag
5. 0.000 0.000 ↓ 0.0

Append (cost=0.00..8,541,212.36 rows=1,225,332 width=140) (actual rows= loops=)

6. 0.000 0.000 ↓ 0.0

Seq Scan on tax (cost=0.00..1,087,586.04 rows=26,858 width=74) (actual rows= loops=)

  • Filter: ((valid_range @> '2019-02-24'::date) AND (fips ~~ '39%'::text) AND (property_type = 'Single Family Residence'::text))
7. 0.000 0.000 ↓ 0.0

Seq Scan on tax_history (cost=0.00..7,435,246.34 rows=1,198,474 width=74) (actual rows= loops=)

  • Filter: ((valid_range @> '2019-02-24'::date) AND (fips ~~ '39%'::text) AND (property_type = 'Single Family Residence'::text))
8. 0.000 0.000 ↓ 0.0

Sort (cost=794,968.72..794,974.86 rows=2,456 width=179) (actual rows= loops=)

  • Sort Key: rec.pid
9. 0.000 0.000 ↓ 0.0

Nested Loop Left Join (cost=1.13..794,830.42 rows=2,456 width=179) (actual rows= loops=)

10. 0.000 0.000 ↓ 0.0

Index Scan using recorder_recording_date_index on recorder rec (cost=0.56..773,809.66 rows=2,456 width=163) (actual rows= loops=)

  • Index Cond: ((recording_date >= '2019-02-24'::date) AND (recording_date < '2019-03-03'::date))
  • Filter: ((document_category_type <> 'MORT'::text) AND (fips ~~ '39%'::text) AND (arms_length_transfer = 'True'::text))
11. 0.000 0.000 ↓ 0.0

Index Scan using avm_2019_02_28_pid_key on avm_2019_02_28 avm (cost=0.57..8.56 rows=1 width=20) (actual rows= loops=)

  • Index Cond: (pid = rec.pid)