




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、SQL 和Oracle對數據庫事務處理的差異性作者: Jake, 出處:IT專家網論壇,責任編輯: 陳子琪, 2009-100-11 113:00在吉日嘎拉拉的軟件編程程走火入魔之之:數據庫事事務處理入門門(適合初學學者閱讀)文文章中關于MMS SQLL Servver和Orracle對對數據庫事務務處理的差異異性引起一些些爭論,因此此記錄我對數數據庫事務處處理的想法。背景在吉日嘎拉拉的軟件編程程走火入魔之之:數據庫事事務處理入門門(適合初學學者閱讀)文文章中關于MMS SQLL HYPERLINK /searchwhatis/497/5948997.shtml Servver和Orracle
2、對對數據庫事務務處理的差異異性引起一些些爭論,因此此記錄我對數數據庫事務處處理的想法。簡介本文講述MMS SQLL Servver和Orracle對對數據庫事務務處理的差異異性,以及OOraclee如何對事務務處理的實現現。什么是事務務數據庫事務務( HYPERLINK /searchwhatis/132/5947632.shtml Dataabase Transsactioon)是一組組數據庫操作作的處理單元元。事務符合合ACID的的特性: HYPERLINK /searchwhatis/470/6092470.shtml Atomiic:原子性性,要么全部部要么一無所所有。Alll or
3、NNone.Consiistentt:一致性,所所有依賴關系系以及約束一一致。Isolaated:分分離性,不同同事務不互相相影響。Durabble:持久久性,提交事事務的數據需需要持久化。為什么要使使用事務實現事務主主要有兩大功功能:1.保證數數據庫的coonsisttent(一一致性狀態),保持所有有依賴關系以以及約束一致致)。哪怕數數據庫管理系系統出現故障障時(例如斷斷電),也能能恢復到一致致性狀態。例例如一個銀行行轉帳系統,張張三給李四轉轉 HYPERLINK /searchwhatis/273/5949273.shtml 3000圓RRMB,張三三帳號上減33000和李李四帳號上加加
4、3000需需要同時完成成,否則系統統的帳就不平平了。也例如如有些銷售系系統的匯總表表和明細表,是是一個主表和和一個從表,需需要同步更新新。2.并發時時分離不同事事務操作。例例如編輯過程程中的數據不不給其他事務務查詢到。這這也是相對的的,在特效需需求下可能要要支持dirrty reead(臟讀讀),但不是是這里討論的的范圍了。SQL SServerr 20088 的事務類類型1.自動提提交事務 AAutocoommit Transsactioons這是SQLL Servver默認的的事務類型,每每一條單獨的的SQL語句句(SQL stateement)都是單獨的的一個事務,語語句執行完畢畢后自動
5、提交交。調用方不不需要手工控控制事務流程程。2.顯示事事務 Expplicitt Trannsactiions調用方需要要調用APII或者使用TT-SQL的的BEGINN HYPERLINK /searchwhatis/297/6092797.shtml TRANNSACTIION 語句句來打開事務務。需要調用用 HYPERLINK /searchwhatis/318/5947318.shtml COMMIIT 或者 HYPERLINK /searchwhatis/218/6093718.shtml ROLLBBACK TTRANSAACTIONN 來提交或或者回滾。3.隱式事事務 Imppl
6、icitt Trannsactiions使用 HYPERLINK /searchwhatis/23/5949023.shtml SETT IMPLLICIT_TRANSSACTIOONS ONN把事務模式式變成隱式模模式。調用方方不需要執行行BEGINN TRANNSACTIION 語句句來打開事務務。數據庫引引擎執行到SSQL語句的的時候自動打打開事務。調調用方需要調調用COMMMIT 或者者 ROLLLBACK TRANSSACTIOON 來提交交或者回滾。當當數據庫引擎擎執行下一個個SQL語句句時又自動打打開一個新事事務。參考:Coontrollling Transsactioons (
7、DDatabaase Enngine)Oraclee的事務類型型Oraclle的事務處處理類型有點點像SQL HYPERLINK /searchwhatis/497/5948997.shtml Serveer的隱式事事務。當執行行到第一個可可執行的SQQL語句時自自動打開事務務,然后需要要調用方執行行 HYPERLINK /searchwhatis/318/5947318.shtml commiit或者 HYPERLINK /searchwhatis/218/6093718.shtml rolllback來來提交或者回回滾事務,如如果有DDLL語句,Orracle也也會自動提交交事務的。參考:
8、 HYPERLINK /searchwhatis/297/6092797.shtml Trransacction ManaggementtOraclle的事務的的實現Oraclle的結構分分邏輯上和物物理上的區別別。邏輯上的的結構是表空空間,而物理理上的結構是是數據文件。邏輯實現Oraclle下實現事事務在邏輯上上是由Unddo HYPERLINK /searchwhatis/458/6028458.shtml Tabblespaace來實現現的。Unddo Tabblespaace包含UUndo SSegemeents(段段),而Unndo Seegemennts包含UUndo HYPERL
9、INK /searchwhatis/99/5947599.shtml DData。UUndo DData是支支持事務的邏邏輯單元。圖源自于OOraclee HYPERLINK /searchwhatis/132/5947632.shtml Dataabase 10g: Adminnistraation Worksshop IIUndo Data用用于保存修改改前后的數據據,以支持回回滾,長時間間查詢,和fflashbback查詢詢,以及失敗敗事務恢復的的功能。由于有了UUndo DData,回回滾事務變得得容易了,因因為Undoo Dataa保存了修改改前后的數據據,保證了事事務的原子性性。失
10、敗事務務恢復和事務務回滾類似,當當網絡 HYPERLINK /searchwhatis/404/7420404.shtml 中斷或者其他他原因導致事事務異常停止止,數據庫引引擎可以恢復復到一致性狀狀態。同時Unddo Datta也支持長長時間查詢(Read-consiistentt),例如有有表格T,主主鍵為 HYPERLINK /searchwhatis/25/5948525.shtml keyy,有字段為為f1,數據據如下,盡管管只有4條數數據,假設需需要很長時間間進行查詢。事務一開始始查詢,一直直沒結束,而而事務二開始始修改 HYPERLINK /searchwhatis/25/5948
11、525.shtml keyy為1的數據據為Z,事務務二進行提交交,數據變成成下面的表格格。但是事務務一查詢結束束的時候還是是讀出A,BB,C,D,因因為查詢是從從Undo中中讀出快照。Flashhback查查詢是Oraacle 110g引進的的功能,可以以查詢出提交交之后修改之之前的數據,例例如上面例子子事務三在事事務二提交后后想查詢出AA,B,C,D可以通過過Flashhback查查詢來完成。這這也是有Unndo HYPERLINK /searchwhatis/99/5947599.shtml Daata來支持持的。物理實現從上面的邏邏輯實現看,只只是知道了事事務以及Unndo Daata的
12、作用用,還不清楚楚Oraclle對事務的的支持到底怎怎么實現的。下下面從物理結結構上講述OOraclee怎么對事務務進行支持。請請先看一個物物理結構圖。圖源自于OOraclee HYPERLINK /searchwhatis/132/5947632.shtml Dataabase 10g: Adminnistraation Worksshop II為了簡化,我我只是用個人人的語言講述述和事務有關關的部件。SSGA可以理理解為全局內內存。其中 HYPERLINK /searchwhatis/132/5947632.shtml DDatabaase Buuffer HYPERLINK /searc
13、hwhatis/459/5946959.shtml Cachee存放的是從從數據文件中中讀取的數據據緩存。紫色色的圓柱體為為數據文件。RRedo LLog Buuffer為為重做日志緩緩存,也就是是保存日志的的內存塊,一一切的數據的的修改都會記記錄在Reddo Logg Bufffer里面。例例如用回事務務二更新 HYPERLINK /searchwhatis/25/5948525.shtml keey為1數據據的例子。當當事務二更新新key為11數據從A到到Z。Oraacle數據據庫引擎會把把key為11的數據的 rowidd,修改前數數據A以及修修改后數據ZZ都記錄在RRedo LLog
14、Buuffer里里面。如果事事務二繼續更更新key為為2的數據為為Y,那么kkey為2的的數據的roowid,修修改前數據BB以及修改后后數據Y也記記錄到Reddo Logg Bufffer里面。每每一筆數據都都記錄,而且且是流水線性性記錄。一旦旦事務二進行行提交,LGGWR HYPERLINK /searchwhatis/292/7333792.shtml 進程(Logg Writter,日志志寫進程)就就會把Reddo Logg Bufffer的數據據按順序寫到到Log DDatafiile里面,也也就是日志數數據文件里面面,當寫日志志文件完成,OOraclee數據庫引擎擎會生成一個個SC
15、N( HYPERLINK /searchwhatis/494/6026494.shtml ssystemm channge nuumber,系系統更新號),到這時候候Oraclle數據庫引引擎會通知調調用方提交完完成了。這里里可以看到OOraclee在提交的時時候不必要把把更新數據寫寫回數據文件件,而是寫到到日志文件里里面。因為順順序寫線性的的日志文件速速度快很多,而而寫數據文件件是需要隨機機讀寫。由于于線性記錄和和SCN號控控制,數據庫庫引擎可以通通過redoo log(重做日志文文件)的操作作得到最新的的數據。當然然在Checckpoinnt的時候數數據文件是最最終還是會更更新的,只是是說
16、事務提交交的時候更新新數據文件不不是必須步驟驟,這樣能很很大的提高性性能。由于這個機機制,回滾變變得很簡單,要要讀沒提交前前之前的SCCN是很容易易的事情。對于初學者者關于數據庫庫事務處理的的建議我自己也是是從新手一步步步走過來,現現在也不是老老鳥,算是有有點經驗,如如果是剛入門門的同學,你你覺得有用就就看一下,沒沒用就過了。對于數據庫庫事務的處理理,開始的時時候不需要很很深入了解數數據庫的原理理,當然以后后還是需要了了解的,優先先級排后而已已。高優先級級如下:首先,事務務不是什么高高深神秘的東東西,我從入入行開始所做做的所有系統統,包括現在在的嵌入式系系統,都用到到事務。我并并不覺得大部部分
17、系統事務務有什么問題題,只是一些些約束和同步步機制,真的的有問題從自自身系統設計計角度看,不不一定說從數數據庫技術角角度去找解決決方法。例如如Oraclle的長時間間查詢如果UUndo HYPERLINK /searchwhatis/99/5947599.shtml DData(歷歷史數據)給給覆蓋了,OOraclee會拋出異常常ORA-015555: snaapshott too old”,如如果出現這種種問題,我會會從自身系統統設計角度入入手,為什么么有那么大的的查詢,為什什么在這個查查詢中其他事事務會更新數數據,這些查查詢是否只是是查一次就夠夠了,查的過過程是否需要要鎖住表等等等。然而這個個問題可以通通過數據庫調調優解決,但但是我想問題題的角度首先先是從自身系系統設計出發發。第二,要知知道的是不同同數據庫的事事務類型的區區別,例如MMS SQLL Seveer是默認是是自動提交事事務,用的時時候需要知道道每個語句都都有單獨的事事務在操作。而而Oraclle是類似于于隱式事務,必必須手工 HYPERLINK /searchwhatis/318/5947318.shtml coommit或或者 HYPERLINK /searchw
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025至2030年中國電解電容器紙行業市場全景調研及投資規模預測報告
- 2025至2030年中國電視柜產業競爭現狀及市場發展策略報告
- 包括文化包容性在內的組織文化管理-洞察闡釋
- 自行車配件生產線項目可行性研究報告(模板)
- 2025至2030年中國電動打蛋器行業市場競爭現狀及發展前景研判報告
- 油氣泊位改造工程可行性研究報告(參考模板)
- 城市土地資源動態管理模型-洞察闡釋
- 2025至2030年中國牙科用正畸材料行業市場研究分析及投資前景研判報告
- 釣魚郵件傳播路徑分析-洞察闡釋
- 冰雪體育旅游公共服務智慧化發展的路徑
- 2025年安徽省高考物理試卷真題(含答案解析)
- 16J914-1 公用建筑衛生間
- 2024年南昌市產業投資集團有限公司招聘筆試參考題庫附帶答案詳解
- petrel RE詳細培訓資料
- 等級醫院評審匯報課件
- 火場偵察和督查的組織與實施
- 2021年中日青年交流中心有限公司二十一世紀飯店校園招聘筆試試題及答案解析
- 食用菌生產技術 大球蓋菇栽培技術課件
- 小班語言課《水果歌》PPT
- TSG11-2020 鍋爐安全技術規程
- 人才培養方案編寫質量標準
評論
0/150
提交評論