Performance in Reports still poor in comparison to HEM1

Questions and discussion about PokerTracker 4 for Windows

Moderators: WhiteRider, kraada, Flag_Hippo, morny, Moderators

Re: Performance in Reports still poor in comparison to HEM1

Postby Dutchraise72 » Sat Aug 18, 2012 9:22 am

kraada wrote:That ticket is currently sitting in a developer's inbox and I'm sure he'll look at it when he has a chance. We haven't forgotten about it and we will get back to you on it.


After the update to 4.04 still the same poor performance. Did sent my pt3 logfile on the 12th aug but i did not recieve any responce on that ticket since then.
Dutchraise72
 
Posts: 158
Joined: Fri Jul 10, 2009 7:32 pm

Re: Performance in Reports still poor in comparison to HEM1

Postby kraada » Sat Aug 18, 2012 10:30 am

I've just emailed the developer in question to try and get some more information on the status of this particular issue for you.
kraada
Moderator
 
Posts: 54431
Joined: Wed Mar 05, 2008 2:32 am
Location: NY

Re: Performance in Reports still poor in comparison to HEM1

Postby Dutchraise72 » Sat Aug 18, 2012 11:56 am

tnx i appreciate it :). Ovious PT3 logfile must be PT4 logfile ;)
Dutchraise72
 
Posts: 158
Joined: Fri Jul 10, 2009 7:32 pm

Re: Performance in Reports still poor in comparison to HEM1

Postby Ypsi » Thu Oct 04, 2012 4:55 pm

workground:

change posttgressql.conf and restart postgressql
Code: Select all
enable_nestloop = off


i hope developers can optimize sql queries
Ypsi
 
Posts: 67
Joined: Wed Feb 13, 2008 5:38 am

Re: Performance in Reports still poor in comparison to HEM1

Postby kraada » Thu Oct 04, 2012 5:19 pm

ypsi,

Are you seeing considerably faster performance with nested-loop joins disabled? Would you be willing to send me EXPLAIN ANALYZE output from one of these queries with it on and off?
kraada
Moderator
 
Posts: 54431
Joined: Wed Mar 05, 2008 2:32 am
Location: NY

Re: Performance in Reports still poor in comparison to HEM1

Postby Ypsi » Thu Oct 04, 2012 6:09 pm

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"
Ypsi
 
Posts: 67
Joined: Wed Feb 13, 2008 5:38 am

Re: Performance in Reports still poor in comparison to HEM1

Postby Dutchraise72 » Thu Oct 04, 2012 6:29 pm

Ypsi wrote:workground:

change posttgressql.conf and restart postgressql
Code: Select all
enable_nestloop = off


i hope developers can optimize sql queries


:( For me it does not make a difference. Loading a report takes more then 5 minutes. I am still forced to use PT3.
Dutchraise72
 
Posts: 158
Joined: Fri Jul 10, 2009 7:32 pm

Re: Performance in Reports still poor in comparison to HEM1

Postby Ypsi » Thu Oct 04, 2012 6:38 pm

Dutchraise72 wrote:
Ypsi wrote:workground:

change posttgressql.conf and restart postgressql
Code: Select all
enable_nestloop = off


i hope developers can optimize sql queries


:( For me it does not make a difference. Loading a report takes more then 5 minutes. I am still forced to use PT3.


do you erased # on begin of the line and reloaded postgres ?
Ypsi
 
Posts: 67
Joined: Wed Feb 13, 2008 5:38 am

Re: Performance in Reports still poor in comparison to HEM1

Postby Dutchraise72 » Thu Oct 04, 2012 7:19 pm

No i did not . Now i did test it without # Its indeed faster on the most queries :) but still PT4 still uses all my available memory.
Dutchraise72
 
Posts: 158
Joined: Fri Jul 10, 2009 7:32 pm

Re: Performance in Reports still poor in comparison to HEM1

Postby PJs Ronin » Thu Oct 04, 2012 10:43 pm

I've got as performance increase as well. Nice work Ypsi.
PJs Ronin
 
Posts: 978
Joined: Fri Dec 25, 2009 11:55 pm

PreviousNext

Return to PokerTracker 4

Who is online

Users browsing this forum: No registered users and 54 guests

cron