11 Replies Latest reply on Jul 11, 2016 9:57 AM by Brit Cava

    Tableau Server: decrease compute time for reports

    Jonathon Stewart

      Hello,

       

      We are running Tableau Server and have been trying to increase performance.  Through the "View Performance History" available on Tableau Server, we have learned that most of our reports have longer computer times than load times.  I am not exactly sure what the difference between compute and load means but I am guessing that load times measure query performance while compute times measure the time necessary to render the view (i.e. calculated fields, visualizations, filters, etc.)  If any one has further info on this I would greatly appreciate it.

       

      Given that we have many reports with significant compute times, I am wondering how we can improve performance.  Obviously, we can look at each workbook to determine if their slow calulatfied fields, filters, etc. but this is very time intensive.  Are there other things that we can do to cut compute time?  Will adding VizQL processes on the server have an impact?  Would adding a worker server have an impact?

       

      Cheers,

      Jon

        • 2. Re: Tableau Server: decrease compute time for reports
          Russell Christopher

          Hey Jon -

           

          A little bit more color beyond the links Tracy gave you:

           

          I am not exactly sure what the difference between compute and load means

           

          The exact definition of these two items is still a bit of a mystery to me too, but here are the basics: Load view is the process of getting a viz ready to render the first time - it involves grabbing the report definition of the viz from our PostgreSQL meta data store, getting it to a VizQL to render, along with some other "housekeeping" stuff, then rendering it for the first time.

           

          ScreenHunter_01 Jan. 23 07.42.gif

           

           

          Compute View represents each additional "re-render" of the report as folks play with filters, drill, and generally interact with the report. , Note how there is much more of a range of blue values above. Each time you "touch" the view to drill, sort, filter, you'll get another Compute View. Note how there are more blue dots than orange ones? This is because a user fiddled around with the report after it was rendered, causing more rendering activities.

          adding VizQL processes on the server have an impact?  Would adding a worker server have an impact?

           

          Probably not, and in fact you could hurt performance by adding additional VizQLs - more VizQLs allow you to handle more concurrent requests from your users at the same time, but they do not make individual requests go faster. You add these to scale, not to improve performance (unless performance stinks because your users are "waiting in line" of for a VizQL to be ready to do their work). VizQLs also cache data, so if you have a lot of them your cache gets spread out and you are less likely to get a "cache hit", which improves performance.

           

          Unless you have other processes on the machine (like a data engine which is constantly refreshing extracts) that are "stealing" resources from your VizQL, you probably don't need another box.

           

          Generally, slow performance on Server indicates one of two things:

           

          • A slow database answering the questions Tableau is asking (which would be apparent in Desktop, too)
          • Authoring issues which leave you with "OK, but not great" performance in Desktop and poor performance on Server.

           

          I'd continue to approach this (the hard way) the way you started - working with the workbook itself vs. searching for a silver bullet on Server.

           

          You mentioned you looked at your calcs and filters - a good start. The #1 thing I see people doing wrong that impacts server performance is allowing a viz (scatterplots & crosstabs/tables, generally) in a dashboard to draw lots of rows or marks.

           

          Authors think "I want to give my users everything, and then they can filter down to what they need". No. Give them the absolute minimum and allow them to back the filters off if they want more. Look at each viz in your dashboard and make sure you're drawing less than  maybe 10K marks (which is still overkill - who is going to be able to make out 10K dots in a scatter plot, after all). I've seen vizzes with 400K+ marks being drawn and the things take 4-5 minutes to render.

           

          Issue #2? Putting too much stuff in a single dashboard - 10+ sheets, 5-6 filters, 3 parameters, etc...all this stuff (at least in version 7) gets rendered serially, not in parallel.

           

          Anyway, I think you're on the right path, just keep going!

           

          Good luck.

          2 of 2 people found this helpful
          • 3. Re: Tableau Server: decrease compute time for reports
            Toby Erkson

            I really like your posts, Russell!  Good details.  Is there any way we can convince you to do some part-time work in product documentation?   Do you have a technical writing background?

             

            Makes me wish this forum software had stickies...

            • 4. Re: Tableau Server: decrease compute time for reports
              Jonathon Stewart

              Tracy,

               

              Yes, I have reviewed these pages and I have learned a lot of about how extracts can improve performance.  We are trying to determine how we could better use extracts for some of reports.

               

              Cheers,

              Jon

              • 5. Re: Tableau Server: decrease compute time for reports
                Jonathon Stewart

                Russell,

                 

                Thanks for your detailed post!  This information is super helpful.  My gut was that we have a lot of reports that are built off slow queries and/or slow visualizations.  Now I just need to identify our high value reports and speed them up.

                 

                Cheers,

                Jon

                • 6. Re: Tableau Server: decrease compute time for reports
                  Jonathon Stewart

                  Russell,

                   

                  Do you know if it is possible to connect to the same data source that is creating the "View Performance History" report in Tableau?  The canned report is useful, but I'd like to do some custom analysis if possible.

                   

                  Cheers,

                  Jon

                  • 7. Re: Tableau Server: decrease compute time for reports
                    Russell Christopher

                    Thanks for your kind words! I just like talking, and when there's no one to listen, writing is the next best thing

                    1 of 1 people found this helpful
                    • 8. Re: Tableau Server: decrease compute time for reports
                      Jonathon Stewart

                      Just followed you. We'll see how long I go down this rabbit hole.

                       

                      Cheers,

                      Jon

                      • 9. Re: Tableau Server: decrease compute time for reports
                        Russell Christopher

                        Jon, still don't see your email. Odd, maybe you didn't include same in your public profile? Shoot me a message at <first initial ><last name>@ <tableau software . calm> and I'll get this to you.

                        • 10. Re: Tableau Server: decrease compute time for reports
                          .Yann Treguier

                          Hello Russell,

                           

                          I am right now trying to resolve a similar issue.  I created a workbook in 8.3.1 desktop based on extracted data.  I published it to an 8.3 Tableau server.  The response time on desktop for any action and/or filtering is between 2 and 4 sec.  I find that very good considering the amount of objects on some of the dashboards (up to 16), the fact that it has up to 10 filters and that some of the measures are parameterized.  Yes, I know, this is considered a violation of all Tableau best practices I have built bad inefficient dashboards before and they would let me know it in Desktop.  In this case, you can't argue with the facts: it is fast. However, the response time falls to between 12 and 15 seconds on the server.

                           

                          Such a disparity does not make sense considering it is based on an extract (which by the way only has 1.5M records).

                          I am assuming this has to do with the server configuration which I am not responsible for.  Where would you start?

                          • 11. Re: Tableau Server: decrease compute time for reports
                            Brit Cava

                            Hi Russell - great information, thanks for sharing! Is the workbook you shared a screenshot of available as a template to download anywhere?