Oracle – 物化视图改变结构如此之慢

我有一个巨大的毁灭性视图,我必须调整.这是一个简单的调整,因为我只是在select语句中添加NVL函数.

即原版的…

Select this,that.....

即改性

Select NVL(this,orThat) as this,NVL(That,orThis) as that

查询需要26秒才能运行,但由于检索到的行数(230万),它的速度很慢.它连续运行了近5天,然后我停了下来.

这是一个问题,特别是因为我需要将它传递给客户端,并且他们无法运行脚本5天来创建MV.

问题:有没有办法加快改变/重建MV?如果我改变MV或者它会像丢弃和重新创建一样快吗?

Oracle版本= 10g

解决方法

您无法更改实体化视图的查询定义 – 您必须删除并重新创建它.也就是说,您可以尝试这种方法,它可能比重新创建整个MV更快:

>使用PRESERVE TABLE删除物化视图.
>更新曾经是MV的表中的数据以反映新的列定义.
>使用ON PREBUILT TABLE子句重新创建物化视图.

如果视图上有索引,则禁用和重建它们可能会有所帮助.

相关文章

发表回复

您的电子邮箱地址不会被公开。