查询重写

查询重写是利用物化视图重写查询语句,使得查询从物化视图中读取数据,尽可能的减少I/O和计算量。查询重写机制自动从数据库选择物化视图对查询进行重写,重写后的结果可能只包含物化视图,称为完全重写;也可能既包含物化视图又包含基本表,称为部分重写。

查询重写包括:ENABLE QUERY REWRITE和DISABLE QUERY REWRITE。分别指出创建的物化视图是否支持查询重写,默认为ENABLE QUERY REWRITE。

物化视图查询改写前提条件如下:

  1. SET ENABLE_MVIEW = 1 --开启物化视图功能的开关。

SET ENABLE_MVIEW_REWRITE = 1 --开启查询重写开关。

注解

ENABLE_MVIEW只能在启库前进行修改。

ENABLE_MVIEW_REWRITE 是session级别参数,任何用户都可以在启库前后修改。

物化视图包含DISTINCT、子查询、SET操作等时,只支持全文匹配的查询重写。query包含不重复表达式的引用(volatile function)不能被代替。