1 Reply Latest reply on Oct 16, 2019 6:49 AM by mark santino

    Tableau Live Data Source Performance

    Venu Rao



      We are using a large Fact table in our Tableau Dashboard and it needs to be secured at the country level.


      So when a user logs-in he will be presented with the data pertaining to his country in the dashboard. We are using the IsMember function to define the filter and also we have tried the approach of having a User security table in the db ( Oracle for us ) and use it in a join with the Fact table and then defining a data source filter with UserName() function.


      Both the IsMember and UserName approach works fine when the country is hard coded in the data source filter and only one country is passed. When there are more than 5-6 countries ( for Regional users having access to more countries) our Fact table has more data for this. But the charts only have aggregated data and we expect the Tableau to return quickly with this aggregated data and assuming only one country is selected in the sheet/ dashboard filter.


      I also checked the log.txt file (Mycomputer\Documents\My Tableau Repository\Logs)   which gets generated in the Tableau repo in desktop, the SQL it has is perfect passing the country selected ( Sheet filter). The same SQL executes in seconds on the Oracle db. But for reason unknown, when we have a user with access to multiple countries, the response takes around 15 min.


      I am not sure why it takes so much of a time when the same SQL which Tableau records in the log executes in seconds.


      Thanks  in advance,


        • 1. Re: Tableau Live Data Source Performance
          mark santino

          Hi Venu -


          just a couple of thoughts regarding your question. Query performance in Tableau against a live data source can be impacted by one or more items: query structure, data structure, dashboard design. If, as you say, the query is executing quickly in native Oracle, then the issue probably resides in one of several other areas - dashboard design, data structure, record volume being processed, network, etc.  . What is the performance of the query in Tableau Desktop? Is it similar to native Oracle or Tableau Server? If it's the latter, I would suggest executing a performance recording of the dashboard on both Desktop & Server. This will provide a breakdown of the operations occurring within the dashboard, and hopefully provide insight into the problem area. Info on performance recording can be located here: Create a Performance Recording - Tableau


          Some additional thoughts: Are you executing custom SQL, and does it contain sub-queries? Regardless if they've already  executed, sub-queries tend to execute each time a filter is modified. Utilization of IsMember user filter is effectively row-level security, and will bypass Cache Server for subsequent use of the dashboard by additional users.



          Mark .......