scan count vs worktable

I have two set of queries.

Query with Subquery:
select hedgeditem1_.hedged_item_id as y0_,
hedgeditem1_.is_active_version as y1_,
hedgeditem6_.hedged_item_status_code as y2_,
hedgeditem6_.name as y3_, rolloverst7_.name as y4_,
hedgeditem1_.exposure_ccy_code as y5_,
hedgeditem1_.proxy_ccy_code as y6_,
hedgeditem1_.hedging_strategy_id as y7_,
basecurren10_.ccy_code as y8_, preferredc9_.ccy_code as y9_,
subfund3_.short_name as y10_,
fund4_.short_name as y11_, institutio5_.short_name as y12_,
(select nav.valuation_amount from nav nav
where nav.hedged_item_id=hedgeditem1_.hedged_item_id and
nav.valuation_date=getDate()
) as y13_,
(select nav.valuation_amount from nav nav
where nav.portfolio_id=portfolio2_.portfolio_id and
nav.valuation_date=getDate()
) as y14_,
orderstatu8_.order_status_code as y15_,
orderstatu8_.name as y16_, this_.ccy1_amount as y17_,
this_.ccy2_amount as y18_, this_.hedging_order_id as y19_,
instrument11_.fx_fwd_maturity_date as y20_,
this_.is_rollover as y21_,
ordercompl12_.is_compliant as y22_,
ordercompl12_.compliance_ticket_id as y23_

from hedging_order this_ inner join hedged_item hedgeditem1_
on this_.hedged_item_id=hedgeditem1_.hedged_item_id
inner join hedged_item_status hedgeditem6_ on
hedgeditem1_.hedged_item_status_code=hedgeditem6_.hedged_item_status_code
left outer join hedged_item_status rolloverst7_ on
hedgeditem1_.rollover_status_code=rolloverst7_.hedged_item_status_code
inner join portfolio portfolio2_ on
hedgeditem1_.portfolio_id=portfolio2_.portfolio_id
inner join currency basecurren10_ on
portfolio2_.base_ccy_code=basecurren10_.ccy_code
left outer join currency preferredc9_ on
portfolio2_.preferred_ccy_code=preferredc9_.ccy_code
inner join sub_fund subfund3_ on
portfolio2_.portfolio_id=subfund3_.sub_fund_id
inner join fund fund4_ on subfund3_.fund_id=fund4_.fund_id
inner join financial_institution institutio5_ on
fund4_.financial_instit_id=institutio5_.financial_instit_id
inner join instrument instrument11_ on
this_.instrument_id=instrument11_.instrument_id
left outer join order_status orderstatu8_ on
this_.order_status_code=orderstatu8_.order_status_code
left outer join compliance_ticket ordercompl12_ on
this_.client_comp_ticket_id=ordercompl12_.compliance_ticket_id


From the query plan:

| | | | | Using Worktable16 for internal
storage.


Table: Worktable15 scan count 1, logical reads: (regular=4
apf=0 total=4), physical reads: (regular=0 apf=0 total=0),
apf IOs used=0
Table: Worktable13 scan count 1, logical reads: (regular=4
apf=0 total=4), physical reads: (regular=0 apf=0 total=0),
apf IOs used=0
Table: Worktable11 scan count 1, logical reads: (regular=4
apf=0 total=4), physical reads: (regular=0 apf=0 total=0),
apf IOs used=0
Table: Worktable9 scan count 1, logical reads: (regular=4
apf=0 total=4), physical reads: (regular=0 apf=0 total=0),
apf IOs used=0
Table: Worktable7 scan count 1, logical reads: (regular=4
apf=0 total=4), physical reads: (regular=0 apf=0 total=0),
apf IOs used=0
Table: Worktable5 scan count 1, logical reads: (regular=4
apf=0 total=4), physical reads: (regular=0 apf=0 total=0),
apf IOs used=0
Table: Worktable3 scan count 1, logical reads: (regular=4
apf=0 total=4), physical reads: (regular=0 apf=0 total=0),
apf IOs used=0
Table: Worktable1 scan count 1, logical reads: (regular=4
apf=0 total=4), physical reads: (regular=0 apf=0 total=0),
apf IOs used=0
Table: hedging_order (this_) scan count 1, logical reads:
(regular=1 apf=0 total=1), physical reads: (regular=0 apf=0
total=0), apf IOs used=0
Table: hedged_item (hedgeditem1_) scan count 8, logical
reads: (regular=16 apf=0 total=16), physical reads:
(regular=0 apf=0 total=0), apf IOs used=0
Table: hedged_item_status (hedgeditem6_) scan count 1,
logical reads: (regular=1 apf=0 total=1), physical reads:
(regular=0 apf=0 total=0), apf IOs used=0
Table: hedged_item_status (rolloverst7_) scan count 1,
logical reads: (regular=1 apf=0 total=1), physical reads:
(regular=0 apf=0 total=0), apf IOs used=0
Table: portfolio (portfolio2_) scan count 1, logical reads:
(regular=1 apf=0 total=1), physical reads: (regular=0 apf=0
total=0), apf IOs used=0
Table: currency (basecurren10_) scan count 1, logical reads:
(regular=1 apf=0 total=1), physical reads: (regular=0 apf=0
total=0), apf IOs used=0
Table: currency (preferredc9_) scan count 1, logical reads:
(regular=1 apf=0 total=1), physical reads: (regular=0 apf=0
total=0), apf IOs used=0
Table: sub_fund (subfund3_) scan count 1, logical reads:
(regular=1 apf=0 total=1), physical reads: (regular=0 apf=0
total=0), apf IOs used=0
Table: instrument (instrument11_) scan count 1, logical
reads: (regular=6 apf=0 total=6), physical reads: (regular=0
apf=0 total=0), apf IOs used=0
Table: fund (fund4_) scan count 8, logical reads:
(regular=16 apf=0 total=16), physical reads: (regular=0
apf=0 total=0), apf IOs used=0
Table: financial_institution (institutio5_) scan count 8,
logical reads: (regular=16 apf=0 total=16), physical reads:
(regular=0 apf=0 total=0), apf IOs used=0
Table: order_status (orderstatu8_) scan count 1, logical
reads: (regular=1 apf=0 total=1), physical reads: (regular=0
apf=0 total=0), apf IOs used=0
Table: compliance_ticket (ordercompl12_) scan count 8,
logical reads: (regular=0 apf=0 total=0), physical reads:
(regular=0 apf=0 total=0), apf IOs used=0
Table: nav (nav) scan count 3, logical reads: (regular=3
apf=0 total=3), physical reads: (regular=0 apf=0 total=0),
apf IOs used=0
Table: nav (nav) scan count 3, logical reads: (regular=3
apf=0 total=3), physical reads: (regular=0 apf=0 total=0),
apf IOs used=0
Total writes for this command: 0



Query with left outer join:


select hedgeditem1_.hedged_item_id as y0_,
hedgeditem1_.is_active_version as y1_,
hedgeditem6_.hedged_item_status_code as y2_,
hedgeditem6_.name as y3_, rolloverst7_.name as y4_,
hedgeditem1_.exposure_ccy_code as y5_,
hedgeditem1_.proxy_ccy_code as y6_,
hedgeditem1_.hedging_strategy_id as y7_,
basecurren10_.ccy_code as y8_, preferredc9_.ccy_code as y9_,
subfund3_.short_name as y10_, fund4_.short_name as y11_,
institutio5_.short_name as y12_,
nav1.valuation_amount as y13_, nav2.valuation_amount as
y14_, orderstatu8_.order_status_code as y15_,
orderstatu8_.name as y16_, this_.ccy1_amount as y17_,
this_.ccy2_amount as y18_, this_.hedging_order_id as y19_,
instrument11_.fx_fwd_maturity_date as y20_,
this_.is_rollover as y21_, ordercompl12_.is_compliant as
y22_,
ordercompl12_.compliance_ticket_id as y23_
from hedging_order this_ inner join hedged_item hedgeditem1_
on this_.hedged_item_id=hedgeditem1_.hedged_item_id
inner join hedged_item_status hedgeditem6_ on
hedgeditem1_.hedged_item_status_code=hedgeditem6_.hedged_item_status_code
left outer join hedged_item_status rolloverst7_ on
hedgeditem1_.rollover_status_code=rolloverst7_.hedged_item_status_code
inner join portfolio portfolio2_ on
hedgeditem1_.portfolio_id=portfolio2_.portfolio_id
inner join currency basecurren10_ on
portfolio2_.base_ccy_code=basecurren10_.ccy_code
left outer join currency preferredc9_ on
portfolio2_.preferred_ccy_code=preferredc9_.ccy_code
inner join sub_fund subfund3_ on
portfolio2_.portfolio_id=subfund3_.sub_fund_id
inner join fund fund4_ on subfund3_.fund_id=fund4_.fund_id
inner join financial_institution institutio5_ on
fund4_.financial_instit_id=institutio5_.financial_instit_id
inner join instrument instrument11_ on
this_.instrument_id=instrument11_.instrument_id
left outer join order_status orderstatu8_ on
this_.order_status_code=orderstatu8_.order_status_code
left outer join compliance_ticket ordercompl12_ on
this_.client_comp_ticket_id=ordercompl12_.compliance_ticket_id
left outer join nav nav1 on
nav1.hedged_item_id=hedgeditem1_.hedged_item_id and
nav1.valuation_date=getDate()
left outer join nav nav2 on
nav2.portfolio_id=portfolio2_.portfolio_id and
nav2.valuation_date=getDate()

From the query plan:

| | | Using Worktable26 for internal storage.


Table: Worktable25 scan count 1, logical reads: (regular=4
apf=0 total=4), physical reads: (regular=0 apf=0 total=0),
apf IOs used=0
Table: Worktable21 scan count 1, logical reads: (regular=4
apf=0 total=4), physical reads: (regular=0 apf=0 total=0),
apf IOs used=0
Table: Worktable19 scan count 1, logical reads: (regular=4
apf=0 total=4), physical reads: (regular=0 apf=0 total=0),
apf IOs used=0
Table: Worktable16 scan count 1, logical reads: (regular=4
apf=0 total=4), physical reads: (regular=0 apf=0 total=0),
apf IOs used=0
Table: Worktable14 scan count 1, logical reads: (regular=4
apf=0 total=4), physical reads: (regular=0 apf=0 total=0),
apf IOs used=0
Table: Worktable12 scan count 1, logical reads: (regular=4
apf=0 total=4), physical reads: (regular=0 apf=0 total=0),
apf IOs used=0
Table: Worktable10 scan count 1, logical reads: (regular=4
apf=0 total=4), physical reads: (regular=0 apf=0 total=0),
apf IOs used=0
Table: Worktable8 scan count 1, logical reads: (regular=4
apf=0 total=4), physical reads: (regular=0 apf=0 total=0),
apf IOs used=0
Table: Worktable6 scan count 1, logical reads: (regular=4
apf=0 total=4), physical reads: (regular=0 apf=0 total=0),
apf IOs used=0
Table: Worktable4 scan count 1, logical reads: (regular=4
apf=0 total=4), physical reads: (regular=0 apf=0 total=0),
apf IOs used=0
Table: Worktable1 scan count 1, logical reads: (regular=4
apf=0 total=4), physical reads: (regular=0 apf=0 total=0),
apf IOs used=0
Table: hedging_order (this_) scan count 1, logical reads:
(regular=1 apf=0 total=1), physical reads: (regular=0 apf=0
total=0), apf IOs used=0
Table: hedged_item (hedgeditem1_) scan count 8, logical
reads: (regular=16 apf=0 total=16), physical reads:
(regular=0 apf=0 total=0), apf IOs used=0
Table: Worktable2 scan count 1, logical reads: (regular=4
apf=0 total=4), physical reads: (regular=0 apf=0 total=0),
apf IOs used=0
Table: nav (nav1) scan count 1, logical reads: (regular=1
apf=0 total=1), physical reads: (regular=0 apf=0 total=0),
apf IOs used=0
Table: hedged_item_status (hedgeditem6_) scan count 1,
logical reads: (regular=1 apf=0 total=1), physical reads:
(regular=0 apf=0 total=0), apf IOs used=0
Table: hedged_item_status (rolloverst7_) scan count 1,
logical reads: (regular=1 apf=0 total=1), physical reads:
(regular=0 apf=0 total=0), apf IOs used=0
Table: portfolio (portfolio2_) scan count 1, logical reads:
(regular=1 apf=0 total=1), physical reads: (regular=0 apf=0
total=0), apf IOs used=0
Table: currency (basecurren10_) scan count 1, logical reads:
(regular=1 apf=0 total=1), physical reads: (regular=0 apf=0
total=0), apf IOs used=0
Table: currency (preferredc9_) scan count 1, logical reads:
(regular=1 apf=0 total=1), physical reads: (regular=0 apf=0
total=0), apf IOs used=0
Table: order_status (orderstatu8_) scan count 1, logical
reads: (regular=1 apf=0 total=1), physical reads: (regular=0
apf=0 total=0), apf IOs used=0
Table: financial_institution (institutio5_) scan count 8,
logical reads: (regular=8 apf=0 total=8), physical reads:
(regular=0 apf=0 total=0), apf IOs used=0
Table: Worktable17 scan count 1, logical reads: (regular=4
apf=0 total=4), physical reads: (regular=0 apf=0 total=0),
apf IOs used=0
Table: fund (fund4_) scan count 1, logical reads: (regular=1
apf=0 total=1), physical reads: (regular=0 apf=0 total=0),
apf IOs used=0
Table: compliance_ticket (ordercompl12_) scan count 1,
logical reads: (regular=1 apf=0 total=1), physical reads:
(regular=0 apf=0 total=0), apf IOs used=0
Table: Worktable22 scan count 1, logical reads: (regular=4
apf=0 total=4), physical reads: (regular=0 apf=0 total=0),
apf IOs used=0
Table: nav (nav2) scan count 1, logical reads: (regular=1
apf=0 total=1), physical reads: (regular=0 apf=0 total=0),
apf IOs used=0
Table: sub_fund (subfund3_) scan count 1, logical reads:
(regular=1 apf=0 total=1), physical reads: (regular=0 apf=0
total=0), apf IOs used=0
Table: instrument (instrument11_) scan count 1, logical
reads: (regular=6 apf=0 total=6), physical reads: (regular=0
apf=0 total=0), apf IOs used=0
Total writes for this command: 0

which one is best to go ?