commit_write引數
Oracle 10gR2中引人了一個新的引數commit_write, 可以通過調整此引數調整Oracle在Commit時的行為特徵.
隨著web 2.0網站的湧現, 寫越來越成為傳統的RDBMS資料庫的瓶頸, 而lgwr的寫一直是Oracle資料庫中最終的瓶頸所在, 在早期的版本中, 所有的事務必須先申請redo log buffer的空間才能進行變更, 提交變更時也必須確保底層的IO寫到物理磁碟, 除非使用磁碟或者儲存的Write Cache,否則寫密集的應用會遭遇大量的log file sync, 使用者端在提交Commit命令之後必須等待lgwr程式寫好此事務相關的redo日誌才能返回, 以達到滿足ACID標準的Durability的目的. 或許是為了吸引部分此類使用者使用Oracle資料庫來解決此類問題, Oracle改進了lgwr Commit相關的處理, 以弱化Durability的方式來幫助使用者提高寫的效率.
COMMIT_WRITE
Property | Description |
---|---|
Parameter type | String |
Syntax | COMMIT_WRITE = '{IMMEDIATE | BATCH},{WAIT |NOWAIT}' |
Default value | If this parameter is not explicitly
specified, then database commit behavior. defaults to writing commit records to
disk before control is returned to the client.
If only IMMEDIATE or BATCH is specified, but not WAIT or NOWAIT, then WAIT mode is assumed. If only WAIT or NOWAIT is specified, but not IMMEDIATE or BATCH, then IMMEDIATE mode is assumed |
Modifiable | Yes (at both session-level and system-level). Values supplied for COMMIT_WRITE in an ALTER SYSTEM or ALTER SESSION statement must be separated by a comma. |
Range of values | Single-quoted, comma-separated list of either IMMEDIATE or BATCH, and either WAIT or NOWAIT. |
Basic | No |
Real Application Clusters | Each instance may have its own setting |
Immediate
日誌資訊會立即寫入磁碟(每次提交時都必須做一次磁碟I/O操作)
batch
Oracle會對日誌資訊進行緩衝. Oracle會按照其自己安排的時間將此日誌資訊寫入到磁碟.
也就是說,多個I/O操作將組成一個批次進行處理
wait
直到提交(commit)操作成功完成,commit命令才會返回
nowait
Oracle不會等待提交返回,而是直接將控制權返回給客戶端
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/9390331/viewspace-747952/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- commit_writeMIT
- commit_write,commit_logging,commit_wait引數和oracle redo行為MITAIOracle Redo
- kettle 引數——變數引數和常量引數變數
- Oracle引數-隱藏引數Oracle
- 什麼是請求引數、表單引數、url引數、header引數、Cookie引數?一文講懂HeaderCookie
- Swift語言中為外部引數設定預設值可變引數常量引數變數引數輸入輸出引數Swift變數
- c# 方法引數_值引數C#
- c# 方法引數_引用引數C#
- 動態引數,靜態引數
- C#中的值引數,引用引數及輸出引數C#
- Swift學習筆記(三十三)——常量引數,變數引數和inout引數Swift筆記變數
- python疑問5:位置引數,預設引數,可變引數,關鍵字引數,命名關鍵字引數區別Python
- JavaScript形式引數和實際引數JavaScript
- Oracle引數檔案解析——引數解析Oracle
- c#方法引數_輸出引數C#
- c# 方法引數_陣列引數C#陣列
- 12.MyBatis學習--對映檔案_引數處理_單個引數&多個引數&命名引數MyBatis
- 引數和變數變數
- Java對比有引數和無引數Java
- nodejs接收get引數和post引數NodeJS
- iOS可變引數(不定引數)的用法iOS
- C#引數傳遞之值引數C#
- Oracle引數檔案 各引數解釋Oracle
- Mysql 引數MySql
- MongoDB引數MongoDB
- INITRANS引數
- oracle 引數Oracle
- 鋰電池引數
- Retrofit 動態引數(非固定引數、非必須引數)(Get、Post請求)
- 關鍵字引數與非關鍵字引數(可變引數)詳解
- nginx 常見引數以及重定向引數配置Nginx
- 關於靜態引數和動態引數
- 常用的jvm配置引數 :永久區引數配置JVM
- C#中命名引數和可選引數C#
- VSFTPD 引數知多少(linux FTP 引數)FTPLinux
- Oracle 各版本引數/隱藏引數 介紹Oracle
- c# 方法引數(傳值,傳引用,ref,out,params,可選引數,命名引數)C#
- Bash變數和引數變數