【恩墨學院】Oracle Redo的產生場景及最佳化
【恩墨學院】Oracle Redo的產生場景及最佳化
Oracle Redo是以條目(Redo record)的形式記錄資料庫的所有更改操作。這些更改包括資料庫物理檔案的更改,資料庫執行狀況更改,後臺程式的寫操作,DML事務操作,資料字典DDL操作,資料庫內部遞迴呼叫等。其中,最主要的原因是DML事務的操作。
本文將分析Redo對於資料庫DML操作的記錄資訊,並提出透過減少Redo條目達到最佳化Redo,提高資料庫效能的方案。
DML事務相關的資料庫更改有哪些?
1. 資料塊更改;
2. 回滾段資料塊映象更新;
3. 資料庫內部資訊更新(資料字典表更新)。
我們可以透過日誌挖掘獲取到資料庫更改的相關資訊,如下:
可以看到,Redo中記錄了DML事物的資料塊更改、回滾段更新等資訊。
如何來減少Redo的產生,從而達到最佳化Redo的目的
1. 減少索引鍵更新操作;
2. 大表(鍵)更新操作;
3. 使用Direct Load載入資料;
4. 使用Nologging進行特定操作;
5. 使用臨時表(Temporary Table);
6. 使用外部表(External Table);
7. 批次化處理DML業務程式;
8. 減少事務Commit次數,採用組提交的方式;
9. 減少Select For Update顯示鎖定,可以明顯減少Redo產生;
10.減少表記錄的數量規模(利用分割槽路由架構分割槽裁剪特性),例如使用分割槽、分表、分庫等策略;
11.減少不必要的DML操作可以減少Redo產生,例如改寫、整合SQL程式,最佳化業務邏輯。
透過示例驗證最佳化的可行性
採用組提交減少Redo的產生:
不採用組提交插入資料:
採用組提交(提交一次)插入資料:
從上述資料可以看出:
不採用組提交產生Redo :9268980;
採用組提交產生Redo: 5241596;
組提交大大減少了Redo的產生:4027384(9268980-5241596)。
採用臨時表可以減少Redo產生:
採用普通表插入資料:
採用全域性臨時表插入資料:
從上述資料可以看出:
普通表產生Redo:5479300;
全域性臨時表產生Redo:1607268;
全域性臨時表大大減少了Redo產生:3872032(5479300-1607268)。
論證結論
可以看到,採用組提交和使用臨時表都能有效的減少Redo的產生,從而提升了資料庫效能。有興趣的讀者可以嘗試採用其餘措施進行擴充套件驗證。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/28530558/viewspace-2150389/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 【恩墨學院】深入剖析 - Oracle SCN機制詳細解讀Oracle
- 【恩墨學院】深入解讀Oracle 18c對於DBA的影響及應對措施Oracle
- 【恩墨學院】5 分鐘帶你看懂 DockerDocker
- 【恩墨學院】阿里雲資料庫CloudDBA的自動運維與智慧最佳化探索阿里資料庫Cloud運維
- 【恩墨學院】基於裸資料的異地資料庫效能診斷與最佳化資料庫
- 【恩墨學院】資料架構:中國電信的Oracle Sharding架構應用案例分析架構Oracle
- 【REDO】Oracle redo undo 學習Oracle Redo
- oracle 9i臨時表產生過多redoOracle
- 【恩墨學院】原來銀行都在用這些資料庫資料庫
- 【恩墨學院】一次由查詢轉換引起的效能問題的分析
- 【恩墨學院】深度學習在美團點評推薦平臺排序中的運用深度學習排序
- 【恩墨學院】從商用到開源:DB2遷移至MySQL的最佳實踐DB2MySql
- 【恩墨學院】當Java虛擬機器遇上Linux Arena記憶體池Java虛擬機Linux記憶體
- 資料庫週刊17│OceanBase上雲;Oracle 的歷史;恩墨學院PG初、中級認證培訓開啟...資料庫Oracle
- 【恩墨學院】Bad Rabbit病毒引發的企業資料安全的思考與應對方案
- 如何追蹤產生大量REDO的來源
- 優思學院|精益生產現場管理的要素是什麼?
- 【恩墨學院】美團點評資料庫高可用架構的演進與設想資料庫架構
- 【恩墨學院】深入解析:一主多備DG環境,failover的實現過程詳解AI
- 【REDO】Oracle redo advice-sqlOracle RedoSQL
- oracle的redo和undoOracle
- 【REDO】Oracle redo內部結構Oracle Redo
- Oracle Redo and UndoOracle Redo
- 精益生產的奧祕 -- 優思學院
- 詳解數倉中sequence的應用場景及最佳化
- Oracle redo解析之-1、oracle redo log結構計算Oracle Redo
- 【恩墨學院】京東618大促閘道器承載十億呼叫量背後的架構實踐架構
- 優思學院|"豐田生產"和“福特生產”有哪些區別?
- 分享一個生產者-消費者的真實場景
- js垃圾回收的場景最佳化JS
- 面向生產的 LLM 最佳化
- MySQL redo log最佳化MySql
- redo log file 最佳化
- MySQL多例項有哪些生產應用場景?怎麼樣才能學好linuxMySqlLinux
- 延遲塊清理介紹(select也會產生redo的原因)
- 從Oracle DBA出發,走進GaussDB的世界 - 雲和恩墨大講堂GaussDB專題Oracle
- 【恩墨學院】邁向資訊化2.0:貴州交警“網際網路+智慧交通”雲化架構的探索實踐架構
- ORACLE filesystemio_options引數詳解及IO場景測試Oracle
- 實踐場景:解決Spark流處理產生的小檔案Spark