当永远不会有更新时,为什么Oracle会为MLOG$设置PCT_自由值

当永远不会有更新时,为什么Oracle会为MLOG$设置PCT_自由值,oracle,Oracle,发现MLOG表中的PCTFREE值为60或90[或者是除0以外的任何值,因为MLOG表中的条目从未更新,只插入和删除]。不知道这些是不是通过这种方式从Oracle交付的。我的问题是,在永远不会有更新的情况下,为什么Oracle会为MLOG$设置一个PCT_自由值。谁能在这里告诉我最新情况吗 提前谢谢 谢谢,SM您认为“MLOG表中的条目永远不会更新”的假设可能不正确。根据MOS文档ID 100498.1,Oracle将在某些情况下更新物化视图日志表: 在刷新阶段,所有行的MLOG$\u XXX.

发现MLOG表中的PCTFREE值为60或90[或者是除0以外的任何值,因为MLOG表中的条目从未更新,只插入和删除]。不知道这些是不是通过这种方式从Oracle交付的。我的问题是,在永远不会有更新的情况下,为什么Oracle会为MLOG$设置一个PCT_自由值。谁能在这里告诉我最新情况吗

提前谢谢

谢谢,SM

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

在刷新阶段,所有行的MLOG$\u XXX.SNAPTIME$$列 在刷新查询满足的情况下,将使用 当前刷新时间戳

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

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

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

c。将MLOG$.OLDEST\u PK设置为当前刷新时间(如果当前) 刷新时间<分钟(SLOG$.SNAPTIME)

d。从MLOG$\u XXX中删除所有行,其中SNAPTIME$$<当前刷新时间

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