Optimization

Oracle 9i 中最佳重做大小查詢中的幻數

  • December 30, 2016

我從這篇博文中得到了這個查詢,以確定 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以及是否可以以其他方式改進此查詢嗎?

博文中的第一句話:

Oracle 數據庫性能調整指南建議最多每20分鐘切換一次日誌。

官方來源:

調整重做日誌文件的大小

無法為重做日誌文件提供具體的大小建議,但百兆到幾千兆字節範圍內的重做日誌文件被認為是合理的。根據系統生成的重做量來調整線上重做日誌文件的大小。粗略的指導是每20分鐘最多切換一次日誌。

引用自:https://dba.stackexchange.com/questions/159572