oracle物化视图的刷新机制

 

Oracle在刷新的时候,先进行删除操作,然后是更新和插入操作;

对于更新和插入操作,Oracle是按照主键顺序进行的;

Oracle采用行级批量更新的方式来提高效率;

Oracle会过滤掉同一条记录的相同字段的多次重复修改;

Oracle在处理SQL的时候采用了缓存CURSOR的方法,不考虑LOB对象的情况,物化视图的刷新只需要分析一条INSERT、一条UPDATE和一条DELETE语句。这也是Oracle没有考虑字段级的一个原因;

对于LOB字段,Oracle采用了单独处理的方式,通过读取物化视图的CHANGE_VECTOR$$列获取UPDATE操作是否修改LOB列的信息,如果包含了LOB字段的修改,那么对LOB列单独处理。INSERT语句在处理完普通字段后,也包含一个对LOB字段的单独的更新操作。

物化视图的刷新特点也印证了Oracle文档上是关于将UPDATEINSERT操作分别进行、分别刷新的描述。

你可能感兴趣的:(oracle物化视图的刷新机制)