-Turn field discovery off if you haven't used any additional fields perhaps....
-select a smaller time range then "All Time"
-Perhaps your search is too generic? Try narrowing the search down to more specific data that you are looking for....
Thinking of other ways......hmmm....
One could write a Novel on this, but I'll focus on reporting type searches...
It's going to sound obvious, but, "be as specific as you can be" in your search. I've got nearly 500,000,000 events in my Splunk at the moment and I definitely get the best results for speed when I use as many of the indexed fields as possible in my query. Host, source, sourcetype, time range (important one!), index name, and so on.
As others have pointed out, if you can disable field discovery, that will help a lot as well.
We have done the following things after doing R & D.
1.Changed date range from real time to today.
2.Set dashboard refresh time to every 5 minutes.
5.Scheduled this search every 5 minutes so it will save in the cache.
6.Search query optimization.
7.Auto restart splunk daily at 2:00 AM UTC so that memory will be released.
8.Set high priority to this dashboard.
7.Set high priority to this scheduled search.
8.Run stats tables first then start charts.
9.Changed the delimer of raw data from text files method to new way which will reduce the time while converting raw data to fields of delimiting proccess.
10.Reduce the number of indexes and source type
After all this my dashboards loading time reduced from 3 minutes to less than 10 seconds.