consistent mode和current mode的區別
consistent mode 是在基於 query mode 下的,oracle有一個一致讀的概念
也就是說,當查詢開始的時候oracle將確立一個時間點,凡是在這個時間點以前提交的資料oracle將能看見,之後提交的資料將不能看見。但查詢的時候可能遇上這樣的情況,該塊中資料已經被修改了,沒有提交,或者提交的時間點比查詢開始的時間晚,則oracle為了保證讀的一致性,需要去回滾段獲取該塊中變化前的資料。這叫 consistent reads 。
current mode 的意思就是,當看到當前的block中的內容的時候,是什麼就是什麼,跟時間點無關,不用去回滾段獲取之前的資料。什麼時候會是這樣的模式? 除了9i以前版本的fts對資料字典的獲取是current mode外(這是因為關於資料字典的獲取必須是當前看見的狀態),主要就是發生在DML 的時候,當發生DML的時候,session所看見的必須是當前的block的狀態,不能去回滾段獲取資料。假如當前block中資料是被其他的session更改過還沒有提交,那麼則看到當前狀態資料被其他session 鎖定,出現等待。(而查詢去回滾段獲取資料則讀和更新之間不會出現鎖的情況)
也就是說,當查詢開始的時候oracle將確立一個時間點,凡是在這個時間點以前提交的資料oracle將能看見,之後提交的資料將不能看見。但查詢的時候可能遇上這樣的情況,該塊中資料已經被修改了,沒有提交,或者提交的時間點比查詢開始的時間晚,則oracle為了保證讀的一致性,需要去回滾段獲取該塊中變化前的資料。這叫 consistent reads 。
current mode 的意思就是,當看到當前的block中的內容的時候,是什麼就是什麼,跟時間點無關,不用去回滾段獲取之前的資料。什麼時候會是這樣的模式? 除了9i以前版本的fts對資料字典的獲取是current mode外(這是因為關於資料字典的獲取必須是當前看見的狀態),主要就是發生在DML 的時候,當發生DML的時候,session所看見的必須是當前的block的狀態,不能去回滾段獲取資料。假如當前block中資料是被其他的session更改過還沒有提交,那麼則看到當前狀態資料被其他session 鎖定,出現等待。(而查詢去回滾段獲取資料則讀和更新之間不會出現鎖的情況)
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/25583515/viewspace-709187/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- trace 檔案中 consistent mode與current mode 的解釋
- ftp命令 binary mode與ascii mode的區別FTPASCII
- Vue的mode中 hash 與 history 的區別Vue
- sql mode 型別(ZT)SQL型別
- Digital Current-Mode Control Challenges Analog CounterpartsGit
- Window mode
- Go 1.18:工作區模式workspace modeGo模式
- [原創] sql mode與 enum 型別SQL型別
- MySQL案例01:Last_SQL_Errno: 1755 Cannot execute the current event group in the parallel modeMySqlASTParallel
- Docker Swarm modeDockerSwarm
- oracle time modeOracle
- javascript strict modeJavaScript
- TM LOCK MODE
- sql_modeSQL
- Windws XP Mode
- Dataguard mode switch
- 更改Archive ModeHive
- Undo Mode (30)
- Mysql的sql_modeMySql
- MySQL Strict SQL MODEMySql
- IDBTransaction.mode
- UFS之Power Mode
- chmod命令(change mode)
- ORACLE LOCK MODE 1.2.3.4.5.6Oracle
- bzoj2456: mode
- slave_exec_mode
- Vi Editing Mode
- expdp五種mode
- DataGuard:Switch Protection Mode
- mysql sql_modeMySql
- 用Org-Mode和Jekyll寫部落格
- oracle中sysdate和current_date兩者的區別Oracle
- Docker Swarm Mode簡介DockerSwarm
- 【Java】The Java Headless ModeJava
- innodb_autoinc_lock_mode
- Optimizer_mode引數
- cannot mount database in EXCLUSIVE modeDatabase
- Innodb Read Only Mode