Most likely you have a CustomerName quickfilter displayed. Is that the case?
If yes - Tableau is trying to do some extra optimizations for those, especially if quickfilters are configured to display "Only Relevant Values" and, if I remember correctly, those optimizations are driven by the domain size which is what query above is getting.
Thanks for the answer. Yes, I have a couple of quick filters on the report, one of them is CustomerName. I want to have "Only Relevant Values" because the list of customers depends on some other filters I have on the report. For example, a user can choose a month from the other filter, than I want to show only customers relevant for the selected month, not all of them.
Do you know if those optimizations that Tableau does are configurable? And is there a place where I can find some more information about this topic?
1 of 1 people found this helpful
I don't think we published any information but in short - Tableau creates certain temporary data structures that maintain relationship between quickfilter so when you select/deselect values on one we could quickly show what's relevant on the other(s).
If you are familiar with ODBC customizations then you can try CAP_SUPPRESS_QUICK_FILTER_ACCELERATION_VIEWS. Sample TDC:
<?xml version='1.0' encoding='utf-8' ?> <connection-customization class='sqlserver' enabled='true' version='8.1'> <vendor name='sqlserver' /> <driver name='sqlserver' /> <customizations> <customization name='CAP_SUPPRESS_QUICK_FILTER_ACCELERATION_VIEWS' value='yes' /> </customizations> </connection-customization>
Dmitry, thank you for the answer.
I prepared the solution that uses CAP_SUPPRESS_QUICK_FILTER_ACCELERATION_VIEWS. It seems that indeed this ODBC customization solves my problem. I didn't notice any queries sent from Tableau after the report is rendered. However, with ODBC I can't use Impersonation and this feature is critical to my reports. They data there is personalized for each user and it will be different for each of them.
Not sure I follow...
Do you mean you switched your connection to Generic ODBC (very last connector)?
If yes then this is not a requirement as customizations works with native connectors as well.
Yes, it switched to ODBC "SQL Server" connector.
Do you mean I can also edit .twb file and there add customiozation for native connector?
Ok, it is only now when I think I understood what you suggested in the first place.
I edited my .twb file, under connection tag I used the customization you suggested and I think it works. I briefly tested it and it seems that it also works with native connector, where I am also able to use impersonation. I will also post after I test I thoroughly.
I tested the solution on different environments and it seems that this connection customization solved my problem. But for the other reports which I created, which showed less data, using connection customization actually decreased performance a little bit. So be aware and always test it "before" and "after".
Load performance or interaction performance?
Dmitry, I was not the one who tested it but my collegaues observed the fact that some of our reports open slightly longer when discussed connection customization was applied (like 7 sec vs 10 sec). For other reports it turned out not to decrease the performance. The interaction performance wasn't tested (it is reasonable for us).
Thank you for the answer once again and I think the topic is closed. :-)