【问题标题】:View Queries taking forever查看查询永远
【发布时间】:2014-04-11 05:21:37
【问题描述】:

我有几个 Oracle 数据库视图,其中包含一些相当复杂的查询,这些查询经常在我的 Web 应用程序中使用。查询需要 10 到 25 秒的时间来计算,然后对数据进行一些后端 Java 处理,这使得它变得更慢。

我通过将视图切换到物化视图来玩弄性能,并注意到速度有了巨大的提高,但当然,除了刷新之外,视图不再保持最新状态。据我了解,有一种方法可以进行“快速刷新”,但据我所知,这对于复杂的查询是不可能的。

有人对我的性能问题有任何想法吗?无论是使用物化视图还是其他解决方案,我都愿意接受任何建议。谢谢!

【问题讨论】:

  • 没有更多细节,很难说。您查看原始查询的解释计划了吗?
  • 取决于“复杂”的含义。你可以analyse your materialised view看看它是否可以快速刷新。

标签: sql oracle view oracle11g materialized-views


【解决方案1】:

由于其中使用了连接,视图无法快速刷新具体化视图。我最终将视图重写为更小的子视图。原始视图的代码行数达到了每个视图超过 150 行。这显然使视图变慢并且没有利用缓存。将视图重写为更小的部分可以提高速度性能,并允许我将原始视图的某些部分转换为物化视图。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-05-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-17
    • 2017-12-26
    相关资源
    最近更新 更多