OBIEE下的ago函数可以用于就是特定时间粒度下的历史指标。比如昨日新增,上周新增。 但是存在一定的性能问题。
使用时间序列函数ago,会导致发出多次查询的sql,而且后面的查询sql几乎不带其他条件,后果就是全表查询,导致性能很差。
搜了一些资料,如果底层数据库是Oracle的话,可以用oracle的分析函数lag,lead啥的,来代替,这样发出去的sql只有一条,同时相应的会走相关索引,从而提高了性能。
悲剧的是,mysql没有分析函数,试了通过在逻辑层加filter的手段,不过现在遇到的问题是,如何在where子句里做时间的减法???
本文讨论了OBIEE中ago函数的性能问题,特别是在MySQL数据库环境下。ago函数在进行历史数据查询时可能导致全表扫描,影响性能。文章探讨了Oracle数据库中使用lag和lead函数作为替代方案的可能性,并提出了在MySQL中实现类似功能的挑战。
788

被折叠的 条评论
为什么被折叠?



