我有几个Oracle数据库视图,它们有一些在我的网络应用程序中经常使用的相当复杂的查询。查询需要10-25秒才能完成计算,然后对数据进行一些后端Java处理,这使得它更慢。
我通过将视图切换到物化视图来发挥性能,并注意到巨大的速度增加,但当然除了刷新之外,视图不会长久保持最新状态。根据我的理解,有一种方法可以进行“快速刷新”,但是从我读过的内容来看,复杂查询是不可能的。
有没有人对我的表现问题有任何想法?我对是否使用物化视图或其他解决方案的任何建议持开放态度。谢谢!
答案 0 :(得分:0)
由于其中使用的连接,视图无法快速刷新实体化视图。我最终将视图重写为较小的子视图。原始视图的代码行每个视图超过150行。这显然使视图变慢并且没有利用缓存。将视图重写为较小的部分可以实现巨大的速度性能,并允许我将原始视图的某些部分转换为物化视图。