为什么Oracle会在永远不会有更新的情况下为MLOG $设置PCT_FREE值

时间:2014-06-26 01:51:27

标签: oracle

发现MLOG表值的PCTFREE为60或90 [或者除了0以外的任何值,因为MLOG表中的条目永远不会更新,只能插入和删除]。不知道这些是否以这种方式从Oracle提供。我的问题是,当永远不会有更新时,Oracle会为MLOG $设置PCT_FREE值。任何人都可以在这里更新我。

提前致谢。

谢谢,SM

1 个答案:

答案 0 :(得分:1)

您认为“MLOG表中的条目永远不会更新”的假设可能不正确。根据MOS Doc ID 100498.1,Oracle将在某些情况下更新物化视图日志表:

  

在刷新阶段,所有行的MLOG $ _XXX.SNAPTIME $$列   在刷新查询满意的情况下更新了   当前刷新时间戳。

     

最后,结束阶段执行以下操作:

     

一个。将SLOG $ .SNAPTIME设置为当前刷新时间。

     

湾将SNAP_REFTIME $ .SNAPTIME设置为当前刷新时间。

     

℃。如果当前,将MLOG $ .OLDEST_PK设置为当前刷新时间   刷新时间< MIN(SLOG $ .SNAPTIME)。

     

d。删除MLOG $ _XXX中的所有行,其中SNAPTIME $$<当前刷新时间。

从上面的解释可以清楚地看出,MLOG $表可以进行各种更新。