好湿?好紧?好多水好爽自慰,久久久噜久噜久久综合,成人做爰A片免费看黄冈,机机对机机30分钟无遮挡

主頁 > 知識庫 > MSSQL與Oracle數據庫事務隔離級別與鎖機制對比

MSSQL與Oracle數據庫事務隔離級別與鎖機制對比

熱門標簽:N個你智能電銷機器人 廣東營銷智能外呼系統商家 騰訊地圖標注要費用嗎 高德地圖標注公司名字大全 七日殺a19.5全地圖標注 電渠外呼系統 地圖標注怎么保存 車瑪仕極限運動場所地圖標注 外呼電話系統用卡嗎

一,事務的4個基本特征

Atomic(原子性):
事務中包含的操作被看做一個邏輯單元,這個邏輯單元中的操作要
么全部成功,要么全部失敗。

Consistency(一致性):
只有合法的數據可以被寫入數據庫,否則事務應該將其回滾到最初
狀態。

Isolation(隔離性):
事務允許多個用戶對同一個數據進行并發訪問,而不破壞數據的正
確性和完整性。同時,并行事務的修改必須與其他并行事務的修改
相互獨立。

Durability(持久性):
事務結束后,事務處理的結果必須能夠得到固化。

以上屬于廢話

二,為什么需要對事務并發控制

如果不對事務進行并發控制,我們看看數據庫并發操作是會有那些異常情形

Lost update:
兩個事務都同時更新一行數據,但是第二個事務卻中途失敗退出,
導致對數據的兩個修改都失效了。

Dirty Reads:
一個事務開始讀取了某行數據,但是另外一個事務已經更新了此數
據但沒有能夠及時提交。這是相當危險的,因為很可能所有的操作
都被回滾。

Non-repeatable Reads:
一個事務對同一行數據重復讀取兩次,但是卻得到了不同的結果。

Second lost updates problem:
無法重復讀取的特例。有兩個并發事務同時讀取同一行數據,然后其
中一個對它進行修改提交,而另一個也進行了修改提交。這就會造成
第一次寫操作失效。

Phantom Reads:
事務在操作過程中進行兩次查詢,第二次查詢的結果包含了第一次查
詢中未出現的數據(這里并不要求兩次查詢的SQL語句相同)。這是
因為在兩次查詢過程中有另外一個事務插入數據造成的。

三, 數據庫的隔離級別

為了兼顧并發效率和異常控制,在標準SQL規范中,定義了4個事務隔
離級別,(ORACLE和SQLSERER對標準隔離級別有不同的實現 )

Read Uncommitted:
直譯就是"讀未提交",意思就是即使一個更新語句沒有提交,但是別
的事務可以讀到這個改變.這是很不安全的.

Read Committed:
直譯就是"讀提交",意思就是語句提交以后即執行了COMMIT以后
別的事務就能讀到這個改變.

Repeatable Read:
直譯就是"可以重復讀",這是說在同一個事務里面先后執行同一個
查詢語句的時候,得到的結果是一樣的.

Serializable:
直譯就是"序列化",意思是說這個事務執行的時候不允許別的事務
并發執行.

四,隔離級別對并發的控制

下表是各隔離級別對各種異常的控制能力。
LU DR NRR SLU PR
RU Y Y Y Y Y
RC N N Y Y Y
RR N N N N Y
S N N N N N

(注:LU:丟失更新;DR:臟讀;NRR:非重復讀;SLU:二類丟失更新;PR:幻像讀)

順便舉一小例。

MS_SQL:

--事務一
set transaction isolation level serializable
begin tran
insert into test values('xxx')

--事務二
set transaction isolation level read committed
begin tran
select * from test

--事務三
set transaction isolation level read uncommitted
begin tran
select * from test

在查詢分析器中執行事務一后,分別執行事務二,和三。結果是事務二會等待,而事務三則會執行。

ORACLE:

--事務一
set transaction isolation level serializable;
insert into test values('xxx');
select * from test;

--事務二
set transaction isolation level read committed--ORACLE默認級別
select * from test

執行事務一后,執行事務二。結果是事務二只讀出原有的數據,無視事務一的插入操作。

讀者是否發現MS_SQL和ORACLE對并發控制的處理有所不同呢?

五,鎖

下表是鎖的兼容或沖突情形。
現有 S U X
請求
S Y Y N
U Y N N
X N N N

現有 S U X
申請    
S  Y Y N
U  Y N N
X  N N N

oracle:
 


六,注意點
 
一般處理并發問題時的步驟:
1、開啟事務。
2、申請寫權限,也就是給對象(表或記錄)加鎖。
3、假如失敗,則結束事務,過一會重試。
4、假如成功,也就是給對象加鎖成功,防止其他用戶再用同樣的方式打開。
5、進行編輯操作。
6、寫入所進行的編輯結果。
7、假如寫入成功,則提交事務,完成操作。
8、假如寫入失敗,則回滾事務,取消提交。
9、(7.8)兩步操作已釋放了鎖定的對象,恢復到操作前的狀態。
 
對多表的操作最好一起取得鎖,或則保證處理順序;個人感覺還是前者好,雖然效率低一些

七,附
查看鎖
ORACLE:

select object_name,session_id,os_user_name,oracle_username,process,locked_mode,status
from v$locked_object l, all_objects a
where l.object_id=a.object_id;

MS_SQL:

EXEC SP_LOCK

您可能感興趣的文章:
  • ORACLE數據庫事務隔離級別介紹
  • oracle 合并查詢 事務 sql函數小知識學習
  • Oracle中死事務的檢查語句
  • Java與Oracle實現事務(JDBC事務)實例詳解
  • ORACLE中如何找到未提交事務的SQL語句詳解

標簽:蘇州 遼寧 長沙 大興安嶺 棗莊 來賓 贛州 玉樹

巨人網絡通訊聲明:本文標題《MSSQL與Oracle數據庫事務隔離級別與鎖機制對比》,本文關鍵詞  MSSQL,與,Oracle,數據庫,事務,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《MSSQL與Oracle數據庫事務隔離級別與鎖機制對比》相關的同類信息!
  • 本頁收集關于MSSQL與Oracle數據庫事務隔離級別與鎖機制對比的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 尤物视频在线免费观看| 黄色大片网站在线观看| 天天摸天天舔| 被两老头把我添高潮了| 91人妻PORNPO黑帽门| 白素贞一级婬片A片| 老师让我晚上玩她的屁屁| 国产明星xxxx视频| 裸睡的丹丹| 好想被cao啊随便cao求cao| 思春期的性学习动漫| 名门嫡姝-213大H慎入| 日系女生裸妆图片真人版| 久久久国产99久久国产一| 日日玩夜夜添人人爽骚毛片| 不许穿衣服露出调教h| 97精品国产AⅤ在线网站小说| 女人与公狒交酡过程免费看| 国产色综合亚洲色综合吹潮| 清冷受被调教的合不拢腿| 中文字幕波多野不卡一区| 菠萝视频完整播放在线观看| 爽死你个荡货妇| 男同桌脱我奶罩吸我奶视频| zz236宅宅最新伦理| 爸爸我可以吃你棒棒糖是| 欧美三级色图| 日本理论片2828电影| 大伊香蕉在线精品视频人碰人| 连体电影| HD BBW Movies| 你的奶好大让我边揉边做| 国产私拍| 美女的隐私免费视频视频| 中文字幕无码亚洲字幕成a人蜜桃| 成人黄动漫视频| 日本人妻伦伦中文字幕| 亚洲国产专区| 极品metart裸体欣赏全部| 欧美亚洲国产另类丰满| 欧美????XXXX96|