sql - Why isn't query plan changed when I enabled hashjoin? -
i'm in postgresql 9.2 , tried change query plan manually follows in pgadmin
:
set enable_hashjoin true; explain analyze select * tbl1 full outer join tbl2 on some_condition full outer join tbl3 on some_condition offset 2000 limit 20
and result same be:
explain analyze select * tbl1 full outer join tbl2 on some_condition full outer join tbl3 on some_condition offset 2000 limit 20
the result:
" -> merge full join (cost=899265.88..980151.59 rows=441998 width=127) (actual time=11985.047..11993.662 rows=2020 loops=1)" " merge cond: ((daily_profit.currency_id = players_external_transactions.currency_id) , (daily_profit.platform_id = players_external_transactions.platform_id) , (daily_profit.partner_id = players_external_transactions.partner_id) , (daily_profit.player_id = players_external_transactions.player_id))" " -> groupaggregate (cost=816428.39..888252.93 rows=441998 width=21) (actual time=10413.132..10420.008 rows=1611 loops=1)" " group key: daily_profit.currency_id, daily_profit.platform_id, daily_profit.partner_id, daily_profit.player_id" " -> sort (cost=816428.39..827478.32 rows=4419971 width=21) (actual time=10413.121..10416.994 rows=8380 loops=1)" " sort key: daily_profit.currency_id, daily_profit.platform_id, daily_profit.partner_id, daily_profit.player_id" " sort method: external merge disk: 134104kb" " -> seq scan on daily_profit (cost=0.00..147267.71 rows=4419971 width=21) (actual time=0.019..1148.922 rows=4415703 loops=1)"
as can see, have merge full join here. expected hash join in plan. did wrong?
Comments
Post a Comment