13k tourney report, 3,5 sec(nestedloops off) vs 3,5 min(nestedloops on)
- Code: Select all
explain analyse SELECT amt_buyin, amt_bounty_per, tourney_currency, amt_fee, amt_buyin_fee, sum(amt_fee_curr_conv), id_gametype, count(distinct cnt_tourneys), avg(avg_finish), sum(cnt_hands), sum(cnt_vpip), sum(cnt_walks), sum(cnt_pfr), sum(cnt_pfr_opp), sum(cnt_p_3bet), sum(cnt_p_3bet_opp), sum(cnt_p_3bet_def_action_fold), sum(cnt_p_3bet_def_opp), sum(cnt_p_4bet), sum(cnt_p_4bet_opp), sum(cnt_p_4bet_def_action_fold), sum(cnt_p_4bet_def_opp), sum(cnt_p_3bet_def_action_call), sum(cnt_p_4bet_after_raising), sum(cnt_p_3bet_def_opp_when_open_raised), sum(cnt_p_squeeze), sum(cnt_p_squeeze_opp), sum(cnt_wtsd), sum(cnt_f_saw), sum(cnt_wtsd_won), sum(cnt_f_saw_won), sum(cnt_f_cbet), sum(cnt_f_cbet_opp), sum(cnt_t_cbet), sum(cnt_t_cbet_opp), sum(cnt_r_cbet), sum(cnt_r_cbet_opp), sum(cnt_f_cbet_success), sum(cnt_t_cbet_success), sum(cnt_r_cbet_success), sum(cnt_f_cbet_def_action_call), sum(cnt_f_cbet_def_opp), sum(cnt_t_cbet_def_action_call), sum(cnt_t_cbet_def_opp), sum(cnt_f_cbet_def_action_fold), sum(cnt_t_cbet_def_action_fold), sum(cnt_p_rfi_btn), sum(cnt_p_open_opp_btn), sum(cnt_p_rfi_ep), sum(cnt_p_open_opp_ep), sum(amt_r_call_won), sum(amt_r_call), sum(cnt_steal_att), sum(cnt_steal_opp), sum(cnt_steal_def_action_raise), sum(cnt_steal_def_opp), sum(cnt_steal_def_action_fold), sum(cnt_f_bet), sum(cnt_f_raise), sum(cnt_t_bet), sum(cnt_t_raise), sum(cnt_r_bet), sum(cnt_r_raise), sum(cnt_f_call), sum(cnt_t_call), sum(cnt_r_call), sum(cnt_f_fold), sum(cnt_t_fold), sum(cnt_r_fold), sum(amt_won_curr_conv), sum(amt_buyin_ttl_curr_conv) FROM ( SELECT (tourney_summary.amt_buyin) as "amt_buyin", (tourney_summary.amt_bounty) as "amt_bounty_per", (tourney_summary.currency) as "tourney_currency", (tourney_summary.amt_fee) as "amt_fee", ((tourney_summary.amt_buyin) + (tourney_summary.amt_fee)) as "amt_buyin_fee", (( (case when(tourney_summary.val_curr_conv!=0) then tourney_summary.val_curr_conv * tourney_summary.amt_fee else 0.0 end) )) as "amt_fee_curr_conv", (tourney_hand_player_statistics.id_gametype) as "id_gametype", ((tourney_summary.id_tourney)) as "cnt_tourneys", ((tourney_results.val_finish)) as "avg_finish", (sum((case when(tourney_hand_player_statistics.id_hand > 0) then 1 else 0 end))) as "cnt_hands", (sum((case when(tourney_hand_player_statistics.flg_vpip) then 1 else 0 end))) as "cnt_vpip", (sum((case when(lookup_actions_p.action = '') then 1 else 0 end))) as "cnt_walks", (sum((case when(tourney_hand_player_statistics.cnt_p_raise > 0) then 1 else 0 end))) as "cnt_pfr", (sum((case when(lookup_actions_p.action LIKE '__%' OR (lookup_actions_p.action LIKE '_' AND tourney_hand_player_statistics.amt_p_raise_facing < (tourney_hand_player_statistics.amt_before - (tourney_hand_player_statistics.amt_blind + tourney_hand_player_statistics.amt_ante)))) then 1 else 0 end))) as "cnt_pfr_opp", (sum((case when(tourney_hand_player_statistics.flg_p_3bet) then 1 else 0 end))) as "cnt_p_3bet", (sum((case when(tourney_hand_player_statistics.flg_p_3bet_opp) then 1 else 0 end))) as "cnt_p_3bet_opp", (sum((case when(tourney_hand_player_statistics.enum_p_3bet_action='F') then 1 else 0 end))) as "cnt_p_3bet_def_action_fold", (sum((case when(tourney_hand_player_statistics.flg_p_3bet_def_opp) then 1 else 0 end))) as "cnt_p_3bet_def_opp", (sum((case when(tourney_hand_player_statistics.flg_p_4bet) then 1 else 0 end))) as "cnt_p_4bet", (sum((case when(tourney_hand_player_statistics.flg_p_4bet_opp) then 1 else 0 end))) as "cnt_p_4bet_opp", (sum((case when(tourney_hand_player_statistics.enum_p_4bet_action='F') then 1 else 0 end))) as "cnt_p_4bet_def_action_fold", (sum((case when(tourney_hand_player_statistics.flg_p_4bet_def_opp) then 1 else 0 end))) as "cnt_p_4bet_def_opp", (sum((case when(tourney_hand_player_statistics.enum_p_3bet_action='C') then 1 else 0 end))) as "cnt_p_3bet_def_action_call", (sum((case when(tourney_hand_player_statistics.flg_p_first_raise and tourney_hand_player_statistics.flg_p_4bet) then 1 else 0 end))) as "cnt_p_4bet_after_raising", (sum((case when(tourney_hand_player_statistics.flg_p_3bet_def_opp AND tourney_hand_player_statistics.flg_p_first_raise) then 1 else 0 end))) as "cnt_p_3bet_def_opp_when_open_raised", (sum((case when(tourney_hand_player_statistics.flg_p_squeeze) then 1 else 0 end))) as "cnt_p_squeeze", (sum((case when(tourney_hand_player_statistics.flg_p_squeeze_opp) then 1 else 0 end))) as "cnt_p_squeeze_opp", (sum((case when(tourney_hand_player_statistics.flg_showdown) then 1 else 0 end))) as "cnt_wtsd", (sum((case when(tourney_hand_player_statistics.flg_f_saw) then 1 else 0 end))) as "cnt_f_saw", (sum((case when(tourney_hand_player_statistics.flg_showdown AND tourney_hand_player_statistics.flg_won_hand) then 1 else 0 end))) as "cnt_wtsd_won", (sum((case when(tourney_hand_player_statistics.flg_won_hand AND tourney_hand_player_statistics.flg_f_saw) then 1 else 0 end))) as "cnt_f_saw_won", (sum((case when(tourney_hand_player_statistics.flg_f_cbet) then 1 else 0 end))) as "cnt_f_cbet", (sum((case when(tourney_hand_player_statistics.flg_f_cbet_opp) then 1 else 0 end))) as "cnt_f_cbet_opp", (sum((case when(tourney_hand_player_statistics.flg_t_cbet) then 1 else 0 end))) as "cnt_t_cbet", (sum((case when(tourney_hand_player_statistics.flg_t_cbet_opp) then 1 else 0 end))) as "cnt_t_cbet_opp", (sum((case when(tourney_hand_player_statistics.flg_r_cbet) then 1 else 0 end))) as "cnt_r_cbet", (sum((case when(tourney_hand_player_statistics.flg_r_cbet_opp) then 1 else 0 end))) as "cnt_r_cbet_opp", (sum((case when(tourney_hand_player_statistics.flg_f_cbet AND NOT (tourney_hand_player_statistics.flg_t_saw) AND NOT (tourney_hand_player_statistics.flg_f_face_raise)) then 1 else 0 end))) as "cnt_f_cbet_success", (sum((case when(tourney_hand_player_statistics.flg_t_cbet AND NOT(tourney_hand_player_statistics.flg_t_face_raise) AND NOT(tourney_hand_player_statistics.flg_r_saw)) then 1 else 0 end))) as "cnt_t_cbet_success", (sum((case when(tourney_hand_player_statistics.flg_r_cbet AND NOT(tourney_hand_player_statistics.flg_r_face_raise) AND NOT(tourney_hand_player_statistics.flg_showdown)) then 1 else 0 end))) as "cnt_r_cbet_success", (sum((case when(tourney_hand_player_statistics.enum_f_cbet_action='C') then 1 else 0 end))) as "cnt_f_cbet_def_action_call", (sum((case when(tourney_hand_player_statistics.flg_f_cbet_def_opp) then 1 else 0 end))) as "cnt_f_cbet_def_opp", (sum((case when(tourney_hand_player_statistics.enum_t_cbet_action='C') then 1 else 0 end))) as "cnt_t_cbet_def_action_call", (sum((case when(tourney_hand_player_statistics.flg_t_cbet_def_opp) then 1 else 0 end))) as "cnt_t_cbet_def_opp", (sum((case when(tourney_hand_player_statistics.enum_f_cbet_action='F') then 1 else 0 end))) as "cnt_f_cbet_def_action_fold", (sum((case when(tourney_hand_player_statistics.enum_t_cbet_action='F') then 1 else 0 end))) as "cnt_t_cbet_def_action_fold", (sum((case when( tourney_hand_player_statistics.flg_p_first_raise and tourney_hand_player_statistics.position = 0) then 1 else 0 end))) as "cnt_p_rfi_btn", (sum((case when( tourney_hand_player_statistics.position = 0 and tourney_hand_player_statistics.flg_p_open_opp) then 1 else 0 end))) as "cnt_p_open_opp_btn", (sum((case when(tourney_hand_player_statistics.flg_p_first_raise AND ((tourney_hand_summary.cnt_players between 4 and 6 and tourney_hand_player_statistics.position between 3 and 5) OR (tourney_hand_summary.cnt_players between 7 and 8 and tourney_hand_player_statistics.position between 4 and 7) OR (tourney_hand_summary.cnt_players between 9 and 10 and tourney_hand_player_statistics.position between 5 and 7))) then 1 else 0 end))) as "cnt_p_rfi_ep", (sum((case when(tourney_hand_player_statistics.flg_p_open_opp AND ((tourney_hand_summary.cnt_players between 4 and 6 and tourney_hand_player_statistics.position between 3 and 5) OR (tourney_hand_summary.cnt_players between 7 and 8 and tourney_hand_player_statistics.position between 4 and 7) OR (tourney_hand_summary.cnt_players between 9 and 10 and tourney_hand_player_statistics.position between 5 and 7))) then 1 else 0 end))) as "cnt_p_open_opp_ep", (sum( (case when( tourney_hand_player_statistics.cnt_r_call > 0 AND (tourney_hand_player_statistics.amt_r_bet_made + tourney_hand_player_statistics.amt_r_raise_made) = 0 AND tourney_hand_player_statistics.flg_won_hand) then tourney_hand_summary.amt_pot else 0 end))) as "amt_r_call_won", (sum( (case when( tourney_hand_player_statistics.cnt_r_call > 0 AND (tourney_hand_player_statistics.amt_r_bet_made + tourney_hand_player_statistics.amt_r_raise_made) = 0) then tourney_hand_player_statistics.amt_bet_r else 0 end))) as "amt_r_call", (sum((case when(tourney_hand_player_statistics.flg_steal_att) then 1 else 0 end))) as "cnt_steal_att", (sum((case when(tourney_hand_player_statistics.flg_steal_opp) then 1 else 0 end))) as "cnt_steal_opp", (sum((case when(tourney_hand_player_statistics.flg_blind_def_opp AND lookup_actions_p.action LIKE 'R%') then 1 else 0 end))) as "cnt_steal_def_action_raise", (sum((case when(tourney_hand_player_statistics.flg_blind_def_opp) then 1 else 0 end))) as "cnt_steal_def_opp", (sum((case when(tourney_hand_player_statistics.flg_blind_def_opp AND lookup_actions_p.action = 'F') then 1 else 0 end))) as "cnt_steal_def_action_fold", (sum((case when(tourney_hand_player_statistics.flg_f_bet) then 1 else 0 end))) as "cnt_f_bet", (sum(tourney_hand_player_statistics.cnt_f_raise)) as "cnt_f_raise", (sum((case when(tourney_hand_player_statistics.flg_t_bet) then 1 else 0 end))) as "cnt_t_bet", (sum(tourney_hand_player_statistics.cnt_t_raise)) as "cnt_t_raise", (sum((case when(tourney_hand_player_statistics.flg_r_bet) then 1 else 0 end))) as "cnt_r_bet", (sum(tourney_hand_player_statistics.cnt_r_raise)) as "cnt_r_raise", (sum(tourney_hand_player_statistics.cnt_f_call )) as "cnt_f_call", (sum(tourney_hand_player_statistics.cnt_t_call )) as "cnt_t_call", (sum(tourney_hand_player_statistics.cnt_r_call )) as "cnt_r_call", (sum((case when(tourney_hand_player_statistics.flg_f_fold) then 1 else 0 end))) as "cnt_f_fold", (sum((case when(tourney_hand_player_statistics.flg_t_fold) then 1 else 0 end))) as "cnt_t_fold", (sum((case when(tourney_hand_player_statistics.flg_r_fold) then 1 else 0 end))) as "cnt_r_fold", (((case when(tourney_summary.val_curr_conv != 0) then tourney_summary.val_curr_conv * (tourney_results.amt_won + tourney_results.cnt_bounty * tourney_summary.amt_bounty) else 0.0 end))) as "amt_won_curr_conv", (((case when(tourney_summary.val_curr_conv != 0) then tourney_summary.val_curr_conv * (tourney_summary.amt_buyin + tourney_summary.amt_fee + tourney_summary.amt_rebuy * tourney_results.cnt_rebuy + tourney_summary.amt_addon * tourney_results.cnt_addon + tourney_summary.amt_bounty) else 0.0 end))) as "amt_buyin_ttl_curr_conv" FROM tourney_table_type , tourney_summary tsttt, tourney_hand_player_statistics , tourney_hand_summary, lookup_actions lookup_actions_p, tourney_results, tourney_summary WHERE (tourney_hand_summary.id_hand = tourney_hand_player_statistics.id_hand AND tourney_hand_summary.id_blinds = tourney_hand_player_statistics.id_blinds) AND (lookup_actions_p.id_action=tourney_hand_player_statistics.id_action_p) AND (tourney_results.id_tourney = tourney_hand_player_statistics.id_tourney AND tourney_results.id_player = tourney_hand_player_statistics.id_player) AND (tourney_summary.id_tourney = tourney_hand_player_statistics.id_tourney) AND (tourney_summary.id_tourney = tourney_hand_summary.id_tourney) AND (tourney_results.id_tourney = tourney_summary.id_tourney) AND (tourney_hand_player_statistics.id_player = (SELECT id_player FROM player WHERE player_name_search='ypsik' AND id_site='100')) AND (tsttt.id_tourney = tourney_hand_player_statistics.id_tourney AND tsttt.id_table_type = tourney_table_type.id_table_type) AND ((tourney_hand_summary.id_gametype = 1)AND ((tourney_table_type.val_flags like '%S%')AND (tourney_summary.date_start >= '2012/07/31 22:00:00' AND tourney_summary.date_start <= '2012/10/04 21:59:59'))) GROUP BY tourney_results.cnt_addon, tourney_results.cnt_rebuy, tourney_results.cnt_bounty, tourney_results.amt_won, tourney_results.val_finish, tourney_summary.amt_addon, tourney_summary.amt_rebuy, tourney_summary.id_tourney, tourney_summary.val_curr_conv, tourney_summary.amt_fee, tourney_summary.currency, tourney_summary.amt_bounty, tourney_summary.amt_buyin, (tourney_summary.amt_buyin), (tourney_summary.amt_bounty), (tourney_summary.currency), (tourney_summary.amt_fee), ((tourney_summary.amt_buyin) + (tourney_summary.amt_fee)), (tourney_hand_player_statistics.id_gametype) ) AS tnySumGroup GROUP BY amt_buyin, amt_bounty_per, tourney_currency, amt_fee, amt_buyin_fee, id_gametype
set enable_nestloop = false;
- Code: Select all
"GroupAggregate (cost=13230.21..13230.56 rows=1 width=717) (actual time=3525.078..3615.847 rows=5 loops=1)"
" -> Sort (cost=13230.21..13230.21 rows=1 width=717) (actual time=3523.762..3523.966 rows=6786 loops=1)"
" Sort Key: tnysumgroup.amt_buyin, tnysumgroup.amt_bounty_per, tnysumgroup.tourney_currency, tnysumgroup.amt_fee, tnysumgroup.amt_buyin_fee, tnysumgroup.id_gametype"
" Sort Method: quicksort Memory: 7085kB"
" -> Subquery Scan on tnysumgroup (cost=13229.86..13230.20 rows=1 width=717) (actual time=3476.442..3509.570 rows=6786 loops=1)"
" -> HashAggregate (cost=13229.86..13230.19 rows=1 width=177) (actual time=3476.440..3508.277 rows=6786 loops=1)"
" InitPlan 1 (returns $0)"
" -> Bitmap Heap Scan on player (cost=3.27..8.71 rows=1 width=4) (actual time=0.044..0.044 rows=1 loops=1)"
" Recheck Cond: (player_name_search = 'ypsik'::text)"
" Filter: (id_site = 100::smallint)"
" -> Bitmap Index Scan on "idx1:player_name_search" (cost=0.00..3.27 rows=2 width=0) (actual time=0.023..0.023 rows=2 loops=1)"
" Index Cond: (player_name_search = 'ypsik'::text)"
" -> Hash Join (cost=2171.86..13220.96 rows=1 width=177) (actual time=864.057..2662.113 rows=99251 loops=1)"
" Hash Cond: (tourney_hand_player_statistics.id_action_p = lookup_actions_p.id_action)"
" -> Hash Join (cost=2169.63..13218.70 rows=1 width=177) (actual time=863.987..2602.630 rows=99251 loops=1)"
" Hash Cond: ((tourney_summary.id_tourney = tourney_hand_player_statistics.id_tourney) AND (tourney_hand_summary.id_hand = tourney_hand_player_statistics.id_hand) AND (tourney_hand_summary.id_blinds = tourney_hand_player_statistics.id_blinds))"
" -> Hash Join (cost=2037.54..13079.19 rows=19 width=91) (actual time=66.006..194.726 rows=99251 loops=1)"
" Hash Cond: (tsttt.id_table_type = tourney_table_type.id_table_type)"
" -> Hash Join (cost=2035.90..13077.13 rows=67 width=93) (actual time=65.973..170.092 rows=99670 loops=1)"
" Hash Cond: (tourney_hand_summary.id_tourney = tourney_summary.id_tourney)"
" -> Seq Scan on tourney_hand_summary (cost=0.00..9902.67 rows=303494 width=19) (actual time=0.003..54.401 rows=303494 loops=1)"
" Filter: (id_gametype = 1)"
" -> Hash (cost=2035.87..2035.87 rows=2 width=74) (actual time=23.244..23.244 rows=6797 loops=1)"
" Buckets: 1024 Batches: 1 Memory Usage: 745kB"
" -> Hash Join (cost=1052.86..2035.87 rows=2 width=74) (actual time=14.783..20.864 rows=6797 loops=1)"
" Hash Cond: (tsttt.id_tourney = tourney_summary.id_tourney)"
" -> Seq Scan on tourney_summary tsttt (cost=0.00..932.81 rows=13381 width=6) (actual time=0.003..1.314 rows=13381 loops=1)"
" -> Hash (cost=1052.84..1052.84 rows=2 width=68) (actual time=14.772..14.772 rows=6797 loops=1)"
" Buckets: 1024 Batches: 1 Memory Usage: 692kB"
" -> Hash Join (cost=10.72..1052.84 rows=2 width=68) (actual time=5.075..12.595 rows=6797 loops=1)"
" Hash Cond: (tourney_summary.id_tourney = tourney_results.id_tourney)"
" -> Seq Scan on tourney_summary (cost=0.00..999.72 rows=6781 width=44) (actual time=0.003..3.611 rows=6805 loops=1)"
" Filter: ((date_start >= '2012-07-31 22:00:00'::timestamp without time zone) AND (date_start <= '2012-10-04 21:59:59'::timestamp without time zone))"
" -> Hash (cost=10.69..10.69 rows=3 width=24) (actual time=5.064..5.064 rows=11944 loops=1)"
" Buckets: 1024 Batches: 1 Memory Usage: 679kB"
" -> Index Scan using "tor:idx2-id_player" on tourney_results (cost=0.00..10.69 rows=3 width=24) (actual time=0.016..2.996 rows=11944 loops=1)"
" Index Cond: (id_player = $0)"
" -> Hash (cost=1.50..1.50 rows=11 width=2) (actual time=0.016..0.016 rows=9 loops=1)"
" Buckets: 1024 Batches: 1 Memory Usage: 1kB"
" -> Seq Scan on tourney_table_type (cost=0.00..1.50 rows=11 width=2) (actual time=0.009..0.013 rows=9 loops=1)"
" Filter: (val_flags ~~ '%S%'::text)"
" -> Hash (cost=130.31..130.31 rows=102 width=118) (actual time=797.956..797.956 rows=254039 loops=1)"
" Buckets: 1024 Batches: 1 Memory Usage: 40073kB"
" -> Index Scan using "thps:idx2-id_player" on tourney_hand_player_statistics (cost=0.00..130.31 rows=102 width=118) (actual time=0.068..580.838 rows=254039 loops=1)"
" Index Cond: (id_player = $0)"
" -> Hash (cost=1.55..1.55 rows=55 width=8) (actual time=0.020..0.020 rows=55 loops=1)"
" Buckets: 1024 Batches: 1 Memory Usage: 3kB"
" -> Seq Scan on lookup_actions lookup_actions_p (cost=0.00..1.55 rows=55 width=8) (actual time=0.005..0.009 rows=55 loops=1)"
"Total runtime: 3623.452 ms"
set enable_nestloop = true;
- Code: Select all
"GroupAggregate (cost=63.90..64.26 rows=1 width=717) (actual time=219653.595..219745.038 rows=5 loops=1)"
" -> Sort (cost=63.90..63.91 rows=1 width=717) (actual time=219652.157..219652.380 rows=6786 loops=1)"
" Sort Key: tnysumgroup.amt_buyin, tnysumgroup.amt_bounty_per, tnysumgroup.tourney_currency, tnysumgroup.amt_fee, tnysumgroup.amt_buyin_fee, tnysumgroup.id_gametype"
" Sort Method: quicksort Memory: 7085kB"
" -> Subquery Scan on tnysumgroup (cost=63.56..63.89 rows=1 width=717) (actual time=219603.004..219636.660 rows=6786 loops=1)"
" -> HashAggregate (cost=63.56..63.88 rows=1 width=177) (actual time=219603.003..219635.311 rows=6786 loops=1)"
" InitPlan 1 (returns $0)"
" -> Bitmap Heap Scan on player (cost=3.27..8.71 rows=1 width=4) (actual time=0.019..0.019 rows=1 loops=1)"
" Recheck Cond: (player_name_search = 'ypsik'::text)"
" Filter: (id_site = 100::smallint)"
" -> Bitmap Index Scan on "idx1:player_name_search" (cost=0.00..3.27 rows=2 width=0) (actual time=0.010..0.010 rows=2 loops=1)"
" Index Cond: (player_name_search = 'ypsik'::text)"
" -> Nested Loop (cost=8.28..54.66 rows=1 width=177) (actual time=19.625..218239.616 rows=99251 loops=1)"
" -> Nested Loop (cost=8.28..48.37 rows=1 width=149) (actual time=19.613..217576.060 rows=244697 loops=1)"
" -> Nested Loop (cost=8.28..48.00 rows=1 width=149) (actual time=19.608..217131.471 rows=244697 loops=1)"
" Join Filter: ((tourney_results.id_tourney = tourney_hand_summary.id_tourney) AND (tourney_hand_player_statistics.id_blinds = tourney_hand_summary.id_blinds))"
" -> Nested Loop (cost=8.28..41.69 rows=1 width=138) (actual time=19.565..216152.388 rows=244697 loops=1)"
" -> Nested Loop (cost=0.00..30.38 rows=1 width=28) (actual time=0.037..142.078 rows=11753 loops=1)"
" -> Nested Loop (cost=0.00..29.53 rows=3 width=30) (actual time=0.033..71.815 rows=11944 loops=1)"
" -> Index Scan using "tor:idx2-id_player" on tourney_results (cost=0.00..10.69 rows=3 width=24) (actual time=0.028..14.092 rows=11944 loops=1)"
" Index Cond: (id_player = $0)"
" -> Index Scan using tourney_summary_primary_key on tourney_summary tsttt (cost=0.00..6.27 rows=1 width=6) (actual time=0.003..0.003 rows=1 loops=11944)"
" Index Cond: (tsttt.id_tourney = tourney_results.id_tourney)"
" -> Index Scan using tourney_table_type_primary_key on tourney_table_type (cost=0.00..0.27 rows=1 width=2) (actual time=0.004..0.005 rows=1 loops=11944)"
" Index Cond: (tourney_table_type.id_table_type = tsttt.id_table_type)"
" Filter: (tourney_table_type.val_flags ~~ '%S%'::text)"
" -> Bitmap Heap Scan on tourney_hand_player_statistics (cost=8.28..11.30 rows=1 width=118) (actual time=18.304..18.309 rows=21 loops=11753)"
" Recheck Cond: ((tourney_hand_player_statistics.id_tourney = tourney_results.id_tourney) AND (tourney_hand_player_statistics.id_player = $0))"
" -> BitmapAnd (cost=8.28..8.28 rows=1 width=0) (actual time=18.294..18.294 rows=0 loops=11753)"
" -> Bitmap Index Scan on "thps:idx4-id_tourney" (cost=0.00..3.93 rows=83 width=0) (actual time=0.011..0.011 rows=42 loops=11753)"
" Index Cond: (tourney_hand_player_statistics.id_tourney = tourney_results.id_tourney)"
" -> Bitmap Index Scan on "thps:idx2-id_player" (cost=0.00..4.08 rows=102 width=0) (actual time=18.124..18.124 rows=254039 loops=11753)"
" Index Cond: (tourney_hand_player_statistics.id_player = $0)"
" -> Index Scan using tourney_hand_summary_primary_key on tourney_hand_summary (cost=0.00..6.30 rows=1 width=19) (actual time=0.003..0.003 rows=1 loops=244697)"
" Index Cond: (tourney_hand_summary.id_hand = tourney_hand_player_statistics.id_hand)"
" Filter: (tourney_hand_summary.id_gametype = 1)"
" -> Index Scan using lookup_actions_primary_key on lookup_actions lookup_actions_p (cost=0.00..0.36 rows=1 width=8) (actual time=0.001..0.001 rows=1 loops=244697)"
" Index Cond: (lookup_actions_p.id_action = tourney_hand_player_statistics.id_action_p)"
" -> Index Scan using tourney_summary_primary_key on tourney_summary (cost=0.00..6.27 rows=1 width=44) (actual time=0.002..0.002 rows=0 loops=244697)"
" Index Cond: (tourney_summary.id_tourney = tourney_results.id_tourney)"
" Filter: ((tourney_summary.date_start >= '2012-07-31 22:00:00'::timestamp without time zone) AND (tourney_summary.date_start <= '2012-10-04 21:59:59'::timestamp without time zone))"
"Total runtime: 219747.778 ms"