子查询何时因物化视图而具有更高的性能?

时间:2015-05-19 17:38:41

标签: sql oracle

我已经在2-3个地方看到过这种情况,在某些情况下,子查询因子(Oracle With子句,也称为公用表表达式)比物化视图更具性能,但没有人提到过。

在某些情况下是否属实,并且应该在这些场合使用子查询因子以获得更高的性能。

1 个答案:

答案 0 :(得分:1)

Oracle WITH子句主要是使语句更具可读性的一种方法。当子语句在语句中出现多次时,Oracle 可能 选择仅评估一次WITH子句并将其结果放入临时表中。据说无证件提示MATERIALIZE鼓励Oracle这样做。

但是,任何时候Oracle也可以选择内联WITH子句,在这种情况下,与重复的子查询相比,根本不存在性能差异。总而言之,我对WITH的性能优势的体验有点令人失望。

相关的物化视图可以预先做一些工作,无论在语句中引用它们多少次都可以提高性能。