我们已设置Tableau页面以加载"直播" (使用url中的刷新arg),因此性能很重要(Tableau端的缓存不是一个选项)。
如果有3个过滤器(例如City,Country,PersonType),其主要查询类似于"从PERSON_VIEW"中选择*,则Tableau在加载时总共调用4个Oracle VIEW(主要数据+每个过滤器一次)!
查询需要1秒左右才能执行(根据会话用户构建视图很复杂;不过完全优化)。
所以,这4次调用(实际上在我的场景中实际上有更多的过滤器)使得仪表板需要4秒以上才能加载!而且显然很令人沮丧。
从Tableau方面 - 我认为应该有一些方法来优化它,因为调用4次相同的东西是非常低效的?
来自Oracle方面 -
a)如果在同一个Session中调用了这些,我们可以设置一个Temp Table并在第一次调用中缓存结果并在后续调用中更快地提供它们,但是它不是从同一个Session中调用的:(
b)我们可以设置物化视图。这相当于缓存,所以不可取。
那么,有什么想法可以提高绩效吗?