Optimization
Oracle 9i 中最佳重做大小查詢中的幻數
我從這篇博文中得到了這個查詢,以確定 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分鐘最多切換一次日誌。