explain.depesz.com

PostgreSQL's explain analyze made readable

Result: UhC1 : Optimization for: plan #C8LO

Settings

Optimization path:

# exclusive inclusive rows x rows loops node
1. 2.811 622.280 ↑ 3.0 22,979 1

Nested Loop (cost=158.36..87,632.82 rows=69,914 width=53) (actual time=9.932..622.280 rows=22,979 loops=1)

2. 0.213 39.463 ↑ 1.4 238 1

Hash Join (cost=157.93..1,733.41 rows=342 width=59) (actual time=7.395..39.463 rows=238 loops=1)

  • Hash Cond: (b.seller = lm.lender)
3. 35.855 35.855 ↓ 1.0 347 1

Index Scan using fnmloan_cusip on fnmloan b (cost=0.56..1,570.49 rows=341 width=58) (actual time=3.980..35.855 rows=347 loops=1)

  • Index Cond: (cusip = '3140Q83J2'::text)
  • Filter: (tpoflag = ANY ('{B,R}'::text[]))
  • Rows Removed by Filter: 50
4. 0.889 3.395 ↑ 1.0 4,772 1

Hash (cost=97.72..97.72 rows=4,772 width=50) (actual time=3.394..3.395 rows=4,772 loops=1)

  • Buckets: 8,192 Batches: 1 Memory Usage: 449kB
5. 2.506 2.506 ↑ 1.0 4,772 1

Seq Scan on lender_map2 lm (cost=0.00..97.72 rows=4,772 width=50) (actual time=0.641..2.506 rows=4,772 loops=1)

6. 1.904 580.006 ↑ 3.4 97 238

Append (cost=0.42..247.84 rows=333 width=37) (actual time=0.854..2.437 rows=97 loops=238)

7. 0.000 0.000 ↓ 0.0 0

Index Only Scan using recorder_ak_state_mortgage_amount_rounded_lender_standard_idx on recorder_ak r (cost=0.42..4.34 rows=1 width=40) (never executed)

  • Index Cond: ((state = b.state) AND (mortgage_amount_rounded = b.origloanamt) AND (lender_standard = lm.standard))
  • Heap Fetches: 0
8. 0.000 0.000 ↓ 0.0 0

Index Only Scan using recorder_al_state_mortgage_amount_rounded_lender_standard_idx on recorder_al r_1 (cost=0.56..4.59 rows=2 width=32) (never executed)

  • Index Cond: ((state = b.state) AND (mortgage_amount_rounded = b.origloanamt) AND (lender_standard = lm.standard))
  • Heap Fetches: 0
9. 0.000 0.000 ↓ 0.0 0

Index Only Scan using recorder_ar_state_mortgage_amount_rounded_lender_standard_idx on recorder_ar r_2 (cost=0.56..4.90 rows=2 width=30) (never executed)

  • Index Cond: ((state = b.state) AND (mortgage_amount_rounded = b.origloanamt) AND (lender_standard = lm.standard))
  • Heap Fetches: 0
10. 0.000 0.000 ↓ 0.0 0

Index Only Scan using recorder_az_state_mortgage_amount_rounded_lender_standard_idx on recorder_az r_3 (cost=0.56..4.93 rows=10 width=40) (never executed)

  • Index Cond: ((state = b.state) AND (mortgage_amount_rounded = b.origloanamt) AND (lender_standard = lm.standard))
  • Heap Fetches: 0
11. 0.000 0.000 ↓ 0.0 0

Index Only Scan using recorder_ca_state_mortgage_amount_rounded_lender_standard_idx on recorder_ca r_4 (cost=0.57..8.02 rows=54 width=39) (never executed)

  • Index Cond: ((state = b.state) AND (mortgage_amount_rounded = b.origloanamt) AND (lender_standard = lm.standard))
  • Heap Fetches: 0
12. 0.000 0.000 ↓ 0.0 0

Index Only Scan using recorder_co_state_mortgage_amount_rounded_lender_standard_idx on recorder_co r_5 (cost=0.56..4.96 rows=8 width=37) (never executed)

  • Index Cond: ((state = b.state) AND (mortgage_amount_rounded = b.origloanamt) AND (lender_standard = lm.standard))
  • Heap Fetches: 0
13. 0.000 0.000 ↓ 0.0 0

Index Only Scan using recorder_ct_state_mortgage_amount_rounded_lender_standard_idx on recorder_ct r_6 (cost=0.56..4.78 rows=7 width=34) (never executed)

  • Index Cond: ((state = b.state) AND (mortgage_amount_rounded = b.origloanamt) AND (lender_standard = lm.standard))
  • Heap Fetches: 0
14. 0.000 0.000 ↓ 0.0 0

Index Only Scan using recorder_de_state_mortgage_amount_rounded_lender_standard_idx on recorder_de r_7 (cost=0.43..4.43 rows=1 width=38) (never executed)

  • Index Cond: ((state = b.state) AND (mortgage_amount_rounded = b.origloanamt) AND (lender_standard = lm.standard))
  • Heap Fetches: 0
15. 0.000 0.000 ↓ 0.0 0

Index Only Scan using recorder_fl_state_mortgage_amount_rounded_lender_standard_idx on recorder_fl r_8 (cost=0.56..5.46 rows=25 width=37) (never executed)

  • Index Cond: ((state = b.state) AND (mortgage_amount_rounded = b.origloanamt) AND (lender_standard = lm.standard))
  • Heap Fetches: 0
16. 0.000 0.000 ↓ 0.0 0

Index Only Scan using recorder_ga_state_mortgage_amount_rounded_lender_standard_idx on recorder_ga r_9 (cost=0.56..4.77 rows=6 width=36) (never executed)

  • Index Cond: ((state = b.state) AND (mortgage_amount_rounded = b.origloanamt) AND (lender_standard = lm.standard))
  • Heap Fetches: 0
17. 0.000 0.000 ↓ 0.0 0

Index Only Scan using recorder_hi_state_mortgage_amount_rounded_lender_standard_idx on recorder_hi r_10 (cost=0.56..4.60 rows=3 width=35) (never executed)

  • Index Cond: ((state = b.state) AND (mortgage_amount_rounded = b.origloanamt) AND (lender_standard = lm.standard))
  • Heap Fetches: 0
18. 0.000 0.000 ↓ 0.0 0

Index Only Scan using recorder_ia_state_mortgage_amount_rounded_lender_standard_idx on recorder_ia r_11 (cost=0.56..4.65 rows=3 width=36) (never executed)

  • Index Cond: ((state = b.state) AND (mortgage_amount_rounded = b.origloanamt) AND (lender_standard = lm.standard))
  • Heap Fetches: 0
19. 0.000 0.000 ↓ 0.0 0

Index Only Scan using recorder_id_state_mortgage_amount_rounded_lender_standard_idx on recorder_id r_12 (cost=0.56..4.59 rows=2 width=38) (never executed)

  • Index Cond: ((state = b.state) AND (mortgage_amount_rounded = b.origloanamt) AND (lender_standard = lm.standard))
  • Heap Fetches: 0
20. 0.000 0.000 ↓ 0.0 0

Index Only Scan using recorder_il_state_mortgage_amount_rounded_lender_standard_idx on recorder_il r_13 (cost=0.56..5.06 rows=14 width=37) (never executed)

  • Index Cond: ((state = b.state) AND (mortgage_amount_rounded = b.origloanamt) AND (lender_standard = lm.standard))
  • Heap Fetches: 0
21. 0.000 0.000 ↓ 0.0 0

Index Only Scan using recorder_in_state_mortgage_amount_rounded_lender_standard_idx on recorder_in r_14 (cost=0.56..4.66 rows=4 width=35) (never executed)

  • Index Cond: ((state = b.state) AND (mortgage_amount_rounded = b.origloanamt) AND (lender_standard = lm.standard))
  • Heap Fetches: 0
22. 0.000 0.000 ↓ 0.0 0

Index Only Scan using recorder_ks_state_mortgage_amount_rounded_lender_standard_idx on recorder_ks r_15 (cost=0.43..4.48 rows=2 width=35) (never executed)

  • Index Cond: ((state = b.state) AND (mortgage_amount_rounded = b.origloanamt) AND (lender_standard = lm.standard))
  • Heap Fetches: 0
23. 0.000 0.000 ↓ 0.0 0

Index Only Scan using recorder_ky_state_mortgage_amount_rounded_lender_standard_idx on recorder_ky r_16 (cost=0.56..4.63 rows=2 width=36) (never executed)

  • Index Cond: ((state = b.state) AND (mortgage_amount_rounded = b.origloanamt) AND (lender_standard = lm.standard))
  • Heap Fetches: 0
24. 0.000 0.000 ↓ 0.0 0

Index Only Scan using recorder_la_state_mortgage_amount_rounded_lender_standard_idx on recorder_la r_17 (cost=0.56..4.58 rows=2 width=34) (never executed)

  • Index Cond: ((state = b.state) AND (mortgage_amount_rounded = b.origloanamt) AND (lender_standard = lm.standard))
  • Heap Fetches: 0
25. 0.000 0.000 ↓ 0.0 0

Index Only Scan using recorder_ma_state_mortgage_amount_rounded_lender_standard_idx on recorder_ma r_18 (cost=0.56..5.19 rows=15 width=36) (never executed)

  • Index Cond: ((state = b.state) AND (mortgage_amount_rounded = b.origloanamt) AND (lender_standard = lm.standard))
  • Heap Fetches: 0
26. 0.000 0.000 ↓ 0.0 0

Index Only Scan using recorder_md_state_mortgage_amount_rounded_lender_standard_idx on recorder_md r_19 (cost=0.56..4.93 rows=11 width=38) (never executed)

  • Index Cond: ((state = b.state) AND (mortgage_amount_rounded = b.origloanamt) AND (lender_standard = lm.standard))
  • Heap Fetches: 0
27. 0.000 0.000 ↓ 0.0 0

Index Only Scan using recorder_me_state_mortgage_amount_rounded_lender_standard_idx on recorder_me r_20 (cost=0.43..4.45 rows=1 width=36) (never executed)

  • Index Cond: ((state = b.state) AND (mortgage_amount_rounded = b.origloanamt) AND (lender_standard = lm.standard))
  • Heap Fetches: 0
28. 0.000 0.000 ↓ 0.0 0

Index Only Scan using recorder_mi_state_mortgage_amount_rounded_lender_standard_idx on recorder_mi r_21 (cost=0.56..4.91 rows=10 width=34) (never executed)

  • Index Cond: ((state = b.state) AND (mortgage_amount_rounded = b.origloanamt) AND (lender_standard = lm.standard))
  • Heap Fetches: 0
29. 0.000 0.000 ↓ 0.0 0

Index Only Scan using recorder_mn_state_mortgage_amount_rounded_lender_standard_idx on recorder_mn r_22 (cost=0.56..4.69 rows=4 width=39) (never executed)

  • Index Cond: ((state = b.state) AND (mortgage_amount_rounded = b.origloanamt) AND (lender_standard = lm.standard))
  • Heap Fetches: 0
30. 0.000 0.000 ↓ 0.0 0

Index Only Scan using recorder_mo_state_mortgage_amount_rounded_lender_standard_idx on recorder_mo r_23 (cost=0.56..4.91 rows=6 width=36) (never executed)

  • Index Cond: ((state = b.state) AND (mortgage_amount_rounded = b.origloanamt) AND (lender_standard = lm.standard))
  • Heap Fetches: 0
31. 0.000 0.000 ↓ 0.0 0

Index Only Scan using recorder_ms_state_mortgage_amount_rounded_lender_standard_idx on recorder_ms r_24 (cost=0.43..4.43 rows=1 width=30) (never executed)

  • Index Cond: ((state = b.state) AND (mortgage_amount_rounded = b.origloanamt) AND (lender_standard = lm.standard))
  • Heap Fetches: 0
32. 0.000 0.000 ↓ 0.0 0

Index Only Scan using recorder_mt_state_mortgage_amount_rounded_lender_standard_idx on recorder_mt r_25 (cost=0.43..4.38 rows=1 width=35) (never executed)

  • Index Cond: ((state = b.state) AND (mortgage_amount_rounded = b.origloanamt) AND (lender_standard = lm.standard))
  • Heap Fetches: 0
33. 0.000 0.000 ↓ 0.0 0

Index Only Scan using recorder_nc_state_mortgage_amount_rounded_lender_standard_idx on recorder_nc r_26 (cost=0.56..5.35 rows=8 width=39) (never executed)

  • Index Cond: ((state = b.state) AND (mortgage_amount_rounded = b.origloanamt) AND (lender_standard = lm.standard))
  • Heap Fetches: 0
34. 0.000 0.000 ↓ 0.0 0

Index Only Scan using recorder_nd_state_mortgage_amount_rounded_lender_standard_idx on recorder_nd r_27 (cost=0.43..4.36 rows=1 width=35) (never executed)

  • Index Cond: ((state = b.state) AND (mortgage_amount_rounded = b.origloanamt) AND (lender_standard = lm.standard))
  • Heap Fetches: 0
35. 0.000 0.000 ↓ 0.0 0

Index Only Scan using recorder_ne_state_mortgage_amount_rounded_lender_standard_idx on recorder_ne r_28 (cost=0.56..4.57 rows=2 width=36) (never executed)

  • Index Cond: ((state = b.state) AND (mortgage_amount_rounded = b.origloanamt) AND (lender_standard = lm.standard))
  • Heap Fetches: 0
36. 0.000 0.000 ↓ 0.0 0

Index Only Scan using recorder_nh_state_mortgage_amount_rounded_lender_standard_idx on recorder_nh r_29 (cost=0.43..4.52 rows=2 width=36) (never executed)

  • Index Cond: ((state = b.state) AND (mortgage_amount_rounded = b.origloanamt) AND (lender_standard = lm.standard))
  • Heap Fetches: 0
37. 0.000 0.000 ↓ 0.0 0

Index Only Scan using recorder_nj_state_mortgage_amount_rounded_lender_standard_idx on recorder_nj r_30 (cost=0.56..5.12 rows=11 width=38) (never executed)

  • Index Cond: ((state = b.state) AND (mortgage_amount_rounded = b.origloanamt) AND (lender_standard = lm.standard))
  • Heap Fetches: 0
38. 0.000 0.000 ↓ 0.0 0

Index Only Scan using recorder_nm_state_mortgage_amount_rounded_lender_standard_idx on recorder_nm r_31 (cost=0.56..4.64 rows=2 width=37) (never executed)

  • Index Cond: ((state = b.state) AND (mortgage_amount_rounded = b.origloanamt) AND (lender_standard = lm.standard))
  • Heap Fetches: 0
39. 0.000 0.000 ↓ 0.0 0

Index Only Scan using recorder_nv_state_mortgage_amount_rounded_lender_standard_idx on recorder_nv r_32 (cost=0.56..4.74 rows=4 width=38) (never executed)

  • Index Cond: ((state = b.state) AND (mortgage_amount_rounded = b.origloanamt) AND (lender_standard = lm.standard))
  • Heap Fetches: 0
40. 578.102 578.102 ↓ 9.7 97 238

Index Only Scan using recorder_ny_state_mortgage_amount_rounded_lender_standard_idx on recorder_ny r_33 (cost=0.56..5.05 rows=10 width=39) (actual time=0.853..2.429 rows=97 loops=238)

  • Index Cond: ((state = b.state) AND (mortgage_amount_rounded = b.origloanamt) AND (lender_standard = lm.standard))
  • Heap Fetches: 867
41. 0.000 0.000 ↓ 0.0 0

Index Only Scan using recorder_oh_state_mortgage_amount_rounded_lender_standard_idx on recorder_oh r_34 (cost=0.56..5.86 rows=17 width=37) (never executed)

  • Index Cond: ((state = b.state) AND (mortgage_amount_rounded = b.origloanamt) AND (lender_standard = lm.standard))
  • Heap Fetches: 0
42. 0.000 0.000 ↓ 0.0 0

Index Only Scan using recorder_ok_state_mortgage_amount_rounded_lender_standard_idx on recorder_ok r_35 (cost=0.56..4.79 rows=2 width=32) (never executed)

  • Index Cond: ((state = b.state) AND (mortgage_amount_rounded = b.origloanamt) AND (lender_standard = lm.standard))
  • Heap Fetches: 0
43. 0.000 0.000 ↓ 0.0 0

Index Only Scan using recorder_or_state_mortgage_amount_rounded_lender_standard_idx on recorder_or r_36 (cost=0.56..4.90 rows=8 width=39) (never executed)

  • Index Cond: ((state = b.state) AND (mortgage_amount_rounded = b.origloanamt) AND (lender_standard = lm.standard))
  • Heap Fetches: 0
44. 0.000 0.000 ↓ 0.0 0

Index Only Scan using recorder_pa_state_mortgage_amount_rounded_lender_standard_idx on recorder_pa r_37 (cost=0.56..5.77 rows=13 width=37) (never executed)

  • Index Cond: ((state = b.state) AND (mortgage_amount_rounded = b.origloanamt) AND (lender_standard = lm.standard))
  • Heap Fetches: 0
45. 0.000 0.000 ↓ 0.0 0

Index Only Scan using recorder_ri_state_mortgage_amount_rounded_lender_standard_idx on recorder_ri r_38 (cost=0.43..4.75 rows=3 width=38) (never executed)

  • Index Cond: ((state = b.state) AND (mortgage_amount_rounded = b.origloanamt) AND (lender_standard = lm.standard))
  • Heap Fetches: 0
46. 0.000 0.000 ↓ 0.0 0

Index Only Scan using recorder_sc_state_mortgage_amount_rounded_lender_standard_idx on recorder_sc r_39 (cost=0.56..4.64 rows=2 width=36) (never executed)

  • Index Cond: ((state = b.state) AND (mortgage_amount_rounded = b.origloanamt) AND (lender_standard = lm.standard))
  • Heap Fetches: 0
47. 0.000 0.000 ↓ 0.0 0

Index Only Scan using recorder_sd_state_mortgage_amount_rounded_lender_standard_idx on recorder_sd r_40 (cost=0.42..4.32 rows=1 width=38) (never executed)

  • Index Cond: ((state = b.state) AND (mortgage_amount_rounded = b.origloanamt) AND (lender_standard = lm.standard))
  • Heap Fetches: 0
48. 0.000 0.000 ↓ 0.0 0

Index Only Scan using recorder_tn_state_mortgage_amount_rounded_lender_standard_idx on recorder_tn r_41 (cost=0.56..4.75 rows=6 width=34) (never executed)

  • Index Cond: ((state = b.state) AND (mortgage_amount_rounded = b.origloanamt) AND (lender_standard = lm.standard))
  • Heap Fetches: 0
49. 0.000 0.000 ↓ 0.0 0

Index Only Scan using recorder_tx_state_mortgage_amount_rounded_lender_standard_idx on recorder_tx r_42 (cost=0.56..4.94 rows=12 width=37) (never executed)

  • Index Cond: ((state = b.state) AND (mortgage_amount_rounded = b.origloanamt) AND (lender_standard = lm.standard))
  • Heap Fetches: 0
50. 0.000 0.000 ↓ 0.0 0

Index Only Scan using recorder_ut_state_mortgage_amount_rounded_lender_standard_idx on recorder_ut r_43 (cost=0.56..4.77 rows=5 width=40) (never executed)

  • Index Cond: ((state = b.state) AND (mortgage_amount_rounded = b.origloanamt) AND (lender_standard = lm.standard))
  • Heap Fetches: 0
51. 0.000 0.000 ↓ 0.0 0

Index Only Scan using recorder_va_state_mortgage_amount_rounded_lender_standard_idx on recorder_va r_44 (cost=0.56..4.89 rows=7 width=37) (never executed)

  • Index Cond: ((state = b.state) AND (mortgage_amount_rounded = b.origloanamt) AND (lender_standard = lm.standard))
  • Heap Fetches: 0
52. 0.000 0.000 ↓ 0.0 0

Index Only Scan using recorder_vt_state_mortgage_amount_rounded_lender_standard_idx on recorder_vt r_45 (cost=0.42..4.33 rows=1 width=34) (never executed)

  • Index Cond: ((state = b.state) AND (mortgage_amount_rounded = b.origloanamt) AND (lender_standard = lm.standard))
  • Heap Fetches: 0
53. 0.000 0.000 ↓ 0.0 0

Index Only Scan using recorder_wa_state_mortgage_amount_rounded_lender_standard_idx on recorder_wa r_46 (cost=0.56..5.05 rows=12 width=39) (never executed)

  • Index Cond: ((state = b.state) AND (mortgage_amount_rounded = b.origloanamt) AND (lender_standard = lm.standard))
  • Heap Fetches: 0
54. 0.000 0.000 ↓ 0.0 0

Index Only Scan using recorder_wi_state_mortgage_amount_rounded_lender_standard_idx on recorder_wi r_47 (cost=0.56..4.68 rows=4 width=37) (never executed)

  • Index Cond: ((state = b.state) AND (mortgage_amount_rounded = b.origloanamt) AND (lender_standard = lm.standard))
  • Heap Fetches: 0
55. 0.000 0.000 ↓ 0.0 0

Index Only Scan using recorder_wv_state_mortgage_amount_rounded_lender_standard_idx on recorder_wv r_48 (cost=0.43..4.38 rows=1 width=35) (never executed)

  • Index Cond: ((state = b.state) AND (mortgage_amount_rounded = b.origloanamt) AND (lender_standard = lm.standard))
  • Heap Fetches: 0
56. 0.000 0.000 ↓ 0.0 0

Index Only Scan using recorder_wy_state_mortgage_amount_rounded_lender_standard_idx on recorder_wy r_49 (cost=0.42..4.33 rows=1 width=34) (never executed)

  • Index Cond: ((state = b.state) AND (mortgage_amount_rounded = b.origloanamt) AND (lender_standard = lm.standard))
  • Heap Fetches: 0
57. 0.000 0.000 ↓ 0.0 0

Index Only Scan using recorder_default_state_mortgage_amount_rounded_lender_stand_idx on recorder_default r_50 (cost=0.42..4.34 rows=1 width=38) (never executed)

  • Index Cond: ((state = b.state) AND (mortgage_amount_rounded = b.origloanamt) AND (lender_standard = lm.standard))
  • Heap Fetches: 0
Planning time : 648.863 ms
Execution time : 623.606 ms