Support

Home Forums Event Espresso Premium Slow queries and very slow loading times

Slow queries and very slow loading times

Posted: October 17, 2020 at 6:18 am


ComedieTriomphe

October 17, 2020 at 6:18 am

On my theatre’s website, I have Query Monitor to troubleshoot my slow loading times.

It seems loading an event with a lot of dates and tickets has a lot of slow queries and it is a little too long to bear.

Any advice how to improve?


Tony

  • Support Staff

October 19, 2020 at 5:28 am

Hi there,

How many dates/tickets are you loading within a single event?

Depending on the numbers, you may need to break your events down a little, for example using a single event for 1 weeks worth of dates/tickets.


ComedieTriomphe

October 19, 2020 at 5:47 am

On one event, each date always has 5 tickets option.

An event can have up to 20 dates, so that’s 100 different tickets. What’s a safe limit I should look for when making events?


Tony

  • Support Staff

October 19, 2020 at 6:27 am

It varies based on your server but your probably looking about 30-40 ticket types with the current set up.


ComedieTriomphe

October 19, 2020 at 12:06 pm

Oh wow, ok, that’s a fairly low number. I wish I had heard about this earlier.

Any way to go around this other than just slicing the events? Server upgrade? Loading the tickets only when the date is selected in the ticket selector? (Honestly this should really be a feature from the start)


Tony

  • Support Staff

October 19, 2020 at 3:33 pm

Any way to go around this other than just slicing the events? Server upgrade?

Not really and a server upgrade is only going to get you so far, the current version of Event Espresso is not designed to load high numbers of datetimes/tickets within a single event.

Currently, you can split the events and then using something like the table view template to output a list of those events for the user to select before loading the ticket selector.

Loading the tickets only when the date is selected in the ticket selector? (Honestly this should really be a feature from the start)

Whilst I understand your frustration and no disrespect intended here, everyone wants X feature to be included from the start so if we tried to suit every use case from the beginning we’d never get a version out the door.

The majority of users do not use 100+ ticket types within a single event so Event Espresso wasn’t designed to handle single events with that many. That type of event is what we class as a recurring event and we don’t have a recurring event manager (REM) add-on fro EE4 yet. As time has gone by we’ve had more feature requests for higher numbers of tickets and have taken the feedback onboard. We are currently rewriting the event editor which will allow for a REM add-on and allow you to create higher numbers of tickets without hitting your server max_input_vars setting (which is likely the next thing you’ll hit and need to update) and all of the framework changes required to do that, then we’ll need to investigate how to load those on the front end to prevent the above.

So yes, loading specific tickets on specific pages is the answer but that’s not something you can easily achieve yourself. With the current version, you’ll need to split the events to use a smaller number of tickets/datetimes to prevent longer load times on the ticket selector.


ComedieTriomphe

October 20, 2020 at 2:07 am

Hi Tony,

I understand your point, but I think it should be a lot clearer on the FAQs and features list that it is not designed for recurring event. EE is asking 300$ yearly for a service, and I really had no idea. I do hope to see some progress on that matter in the near future.


Tony

  • Support Staff

October 20, 2020 at 5:54 am

May I ask where you would have liked for that info to be included on the above locations?

I can pass this onto the team but we don’t have a list of features we don’t support currently so I’m not sure where we would add that in.


ComedieTriomphe

October 20, 2020 at 7:11 am

If, as you said, you guys are getting more and more of requests to enable support for recurrent events/high tickets count, then I think a whole knowledge article about typical setups and caveats when dealing with many shows will help people make the right choice when deciding whether to implement EE.

Hopefully this add-on is implemented at some point soon.

You must be logged in to reply to this support post. Sign In or Register for an Account

Support forum for Event Espresso 3 and Event Espresso 4.
Documentation for EE3 and EE4
Documentation for Event Espresso 3 Documentation for Event Espresso 4

Status: publish

Updated by  ComedieTriomphe 6 days, 12 hours ago ago

Topic Tags

Notifications

This topic is: not resolved
Do NOT follow this link or you will be banned from the site!
[gravityform id=80 title=false description=false ajax=false]
<div class='gf_browser_unknown gform_wrapper' id='gform_wrapper_80' ><form method='post' enctype='multipart/form-data' id='gform_80' action='/topic/slow-queries-and-very-slow-loading-times/'> <div class='gform_body'><ul id='gform_fields_80' class='gform_fields top_label form_sublabel_below description_below'><li id='field_80_1' class='gfield gfield_contains_required field_sublabel_below field_description_below gfield_visibility_visible' ><label class='gfield_label' for='input_80_1' >First name<span class='gfield_required'>*</span></label><div class='ginput_container ginput_container_text'><input name='input_1' id='input_80_1' type='text' value='' class='medium' aria-required="true" aria-invalid="false" /></div></li><li id='field_80_2' class='gfield gfield_contains_required field_sublabel_below field_description_below gfield_visibility_visible' ><label class='gfield_label' for='input_80_2' >Email address<span class='gfield_required'>*</span></label><div class='ginput_container ginput_container_email'> <input name='input_2' id='input_80_2' type='email' value='' class='medium' aria-required="true" aria-invalid="false" /> </div></li><li id='field_80_3' class='gfield gfield_contains_required field_sublabel_below field_description_below gfield_visibility_visible' ><label class='gfield_label' >GDPR Agreement<span class='gfield_required'>*</span></label><div class='ginput_container ginput_container_checkbox'><ul class='gfield_checkbox' id='input_80_3'><li class='gchoice_80_3_1'> <input name='input_3.1' type='checkbox' value='I consent to have this website store my submitted information so they can respond to my inquiry.' id='choice_80_3_1' /> <label for='choice_80_3_1' id='label_80_3_1'>I consent to have this website store my submitted information so they can respond to my inquiry.</label> </li></ul></div></li><li id='field_80_4' class='gfield gform_validation_container field_sublabel_below field_description_below gfield_visibility_visible' ><label class='gfield_label' for='input_80_4' >Name</label><div class='ginput_container'><input name='input_4' id='input_80_4' type='text' value='' autocomplete='off'/></div><div class='gfield_description' id='gfield_description_80_4'>This field is for validation purposes and should be left unchanged.</div></li> </ul></div> <div class='gform_footer top_label'> <input type='submit' id='gform_submit_button_80' class='gform_button button' value='Download Now' onclick='if(window["gf_submitting_80"]){return false;} if( !jQuery("#gform_80")[0].checkValidity || jQuery("#gform_80")[0].checkValidity()){window["gf_submitting_80"]=true;} ' onkeypress='if( event.keyCode == 13 ){ if(window["gf_submitting_80"]){return false;} if( !jQuery("#gform_80")[0].checkValidity || jQuery("#gform_80")[0].checkValidity()){window["gf_submitting_80"]=true;} jQuery("#gform_80").trigger("submit",[true]); }' /> <input type='hidden' class='gform_hidden' name='is_submit_80' value='1' /> <input type='hidden' class='gform_hidden' name='gform_submit' value='80' /> <input type='hidden' class='gform_hidden' name='gform_unique_id' value='' /> <input type='hidden' class='gform_hidden' name='state_80' value='WyJbXSIsIjBiNjdjZjkyMDUzOWUxOWY5Y2NiZjIwMzM4YjA1Mjk4Il0=' /> <input type='hidden' class='gform_hidden' name='gform_target_page_number_80' id='gform_target_page_number_80' value='0' /> <input type='hidden' class='gform_hidden' name='gform_source_page_number_80' id='gform_source_page_number_80' value='1' /> <input type='hidden' name='gform_field_values' value='' /> </div> </form> </div><script type='text/javascript'> jQuery(document).bind('gform_post_render', function(event, formId, currentPage){if(formId == 80) {} } );jQuery(document).bind('gform_post_conditional_logic', function(event, formId, fields, isInit){} );</script><script type='text/javascript'> jQuery(document).ready(function(){jQuery(document).trigger('gform_post_render', [80, 1]) } ); </script>
[i]
[i]