我从这篇博文中得到了这个查询,以确定 Oracle10 之前的数据库中的最佳联机重做日志大小。
由于超出我的薪资等级的原因,我在那个特定实例中坚持使用 Oracle 9i,并且在这个版本中,视图V$INSTANCE_RECOVERY
缺少该OPTIMAL_LOGFILE_SIZE
列):
SELECT
(SELECT ROUND(AVG(BYTES) / 1024 / 1024, 2) FROM V$LOG) AS "Redo size (MB)",
ROUND((20 / AVERAGE_PERIOD) * (SELECT AVG(BYTES) FROM V$LOG) / 1024 / 1024, 2) AS "Recommended Size (MB)"
FROM
(
SELECT AVG((NEXT_TIME - FIRST_TIME) * 24 * 60) AS AVERAGE_PERIOD
FROM V$ARCHIVED_LOG
WHERE FIRST_TIME > SYSDATE - 3
AND TO_CHAR(FIRST_TIME, 'HH24:MI') BETWEEN
'00:00' AND '23:59'
);
我缩进了查询以更好地理解,但我不明白为什么作者使用幻数20
。
有人可以告诉我为什么20
以及是否可以改进此查询吗?
博文第一句话:
官方来源:
调整重做日志文件的大小