韩剧1988免费观看全集_久久影视三级福利片_亚洲视频在线观看免费_在线观看欧美日韩_国产亚洲激情在线_亚洲精品美女久久久_欧美国产日韩一区二区在线观看_91在线观看免费高清完整版在线观看_日韩av免费看_国产又爽又黄的激情精品视频_琪琪亚洲精品午夜在线_欧美性猛xxx_不卡毛片在线看_国产亚洲日本欧美韩国_91国内在线视频_精品国产福利视频

當(dāng)前位置:蘿卜系統(tǒng)下載站 > 技術(shù)開發(fā)教程 > 詳細(xì)頁面

SQL Server與Oracle防范數(shù)據(jù)鎖定的比較

SQL Server與Oracle防范數(shù)據(jù)鎖定的比較

更新時間:2022-10-10 文章作者:未知 信息來源:網(wǎng)絡(luò) 閱讀次數(shù):

廖錚

2002-5-30 14:23:50

--------------------------------------------------------------------------------


數(shù)據(jù)庫并行訪問,也就是兩個或兩以上用戶同時訪問同一數(shù)據(jù),這也是數(shù)據(jù)庫引擎如何設(shè)計和實現(xiàn)適度反應(yīng)所面臨的最大問題。設(shè)計優(yōu)良、性能卓越的數(shù)據(jù)庫引擎可以輕松地同時為成千上萬的用戶服務(wù)。而“底氣不足”的數(shù)據(jù)庫系統(tǒng)隨著更多的用戶同時訪問系統(tǒng)將大大降低其性能。最糟糕的情況下甚至可能導(dǎo)致系統(tǒng)的崩潰。

當(dāng)然,并行訪問是任何數(shù)據(jù)庫解決方案都最為重視的問題了,為了解決并行訪問方面的問題各類數(shù)據(jù)庫系統(tǒng)提出了各種各樣的方案。 SQL Server和Oracle兩大DBMS也分別采用了不同的并行處理方法。它們之間的實質(zhì)差別在哪里呢?

并行訪問的問題
并行訪問出現(xiàn)問題存在若干種情況。在最簡單的情形下,數(shù)量超過一個的用戶可能同時查詢同一數(shù)據(jù)。就這種情況而言數(shù)據(jù)庫的操作目標(biāo)很簡單:盡可能地為用戶們提供快速的數(shù)據(jù)訪問。 這對我們現(xiàn)在常見的數(shù)據(jù)庫來說不成問題:SQL Server和 Oracle 都采用了多線程機(jī)制,它們當(dāng)然能夠一次處理多個請求。

不過,在用戶修改數(shù)據(jù)的情況下并行訪問問題就變得復(fù)雜起來了。顯然,數(shù)據(jù)庫通常只允許唯一用戶一次修改特定的數(shù)據(jù)。當(dāng)某一用戶開始修改某塊數(shù)據(jù)時, SQL Server和 Oracle 都能很快地鎖定數(shù)據(jù),阻止其他用戶對這塊數(shù)據(jù)進(jìn)行更新,直到修改該數(shù)據(jù)的第1位用戶完成其操作并提交交易(commit transaction)。但是,當(dāng)某一位用戶正在修改某塊數(shù)據(jù)時假設(shè)另一位用戶又正想查詢該數(shù)據(jù)的信息時會發(fā)生什么情況呢?在這種情況下數(shù)據(jù)庫管理系統(tǒng)又該如何動作呢?Oracle 和 SQL Server針對這一問題采取了不同的解決方案。

SQL Server方法
現(xiàn)在不妨假設(shè)有人開始修改SQL Server上存儲的數(shù)據(jù),于是這塊數(shù)據(jù)立即被數(shù)據(jù)庫鎖定。數(shù)據(jù)鎖定操作阻塞其他任何訪問該數(shù)據(jù)的連接——連查詢操作都不會放過。于是,這塊被鎖定的數(shù)據(jù)只有在交易被提交或者回滾之后才能接受其他訪問操作。

下面用SQL Server隨帶的pubs示例數(shù)據(jù)庫做一個簡單示范。在Query Analyzer內(nèi)打開兩個窗口。在第1個窗口中執(zhí)行下列SQL操作語句,更新pubs數(shù)據(jù)庫中某一圖書的價格:

use pubs
go
begin tran
update titles
set price = price * 1.05
where

title_id = 'BU2075'

由于代碼中并沒有執(zhí)行commit語句,所以數(shù)據(jù)變動操作實際上還沒有最終完成。接下來,在另一個窗口里執(zhí)行下列語句查詢titles數(shù)據(jù)表:
select title_id,title,price
from titles
order by title_id.

你什么結(jié)果也得不到。窗口底部的小地球圖標(biāo)會轉(zhuǎn)個不停。盡管我在先前的操作中僅僅更新了一行,但是,select語句的執(zhí)行對象卻恰好包含了其數(shù)據(jù)正被修改的一行。因此,上面的操作不會返回任何數(shù)據(jù),除非回到第1個窗口提交交易或者回滾。

SQL Server的數(shù)據(jù)鎖定方案可能會降低系統(tǒng)的性能和效率。數(shù)據(jù)被鎖定的時間越長,或者鎖定的數(shù)據(jù)量越大,其他數(shù)據(jù)訪問用戶就越可能不得不等待其查詢語句的執(zhí)行。因此,從程序員的角度來看,對SQL Server編程的時候應(yīng)該盡量地把交易代碼設(shè)計得既小又快。

在SQL Server的最近版本中,微軟對SQL Server進(jìn)行了某些修改,使其一次鎖定的數(shù)據(jù)量大大減少,這是數(shù)據(jù)庫設(shè)計中的一大重要改進(jìn)。在6.5版及以前版本中,最少的數(shù)據(jù)鎖定量是一頁。哪怕你只在修改一行數(shù)據(jù),而該行數(shù)據(jù)位于包含10行數(shù)據(jù)的一頁上,則整頁10行數(shù)據(jù)都會被鎖定。顯然,這么大的數(shù)據(jù)鎖定量增加了其他數(shù)據(jù)訪問連接不得不等待數(shù)據(jù)修正完成的概率。在SQL Server 7中,微軟引入了行鎖定技術(shù),這樣,目前的SQL Server只鎖定實際正被改變的數(shù)據(jù)行。

SQL Server的解決方案聽起來很簡單,但實際上其幕后為提供足夠的系統(tǒng)高性能而采取了很多措施。例如,如果你在同時修改多行數(shù)據(jù),SQL Server則會把數(shù)據(jù)鎖定范圍提升到頁級別乃至鎖定整個數(shù)據(jù)表,從而不必針對每一記錄跟蹤和維護(hù)各自的數(shù)據(jù)鎖。

Oracle方法
下面我們再看看Oracle數(shù)據(jù)庫是如何實施類似操作的。首先,我打開一個SQLPlus實例執(zhí)行下列查詢語句(這個例子可以在Oracle 9i中示例中找到)。這個實例稱做查詢實例:
select first_name, last_name, salary
from hr.employees
where
department_id = 20;
代碼返回兩行數(shù)據(jù),如下所示:

然后,再打開另一個SQLPlus實例——更新實例來執(zhí)行以下命令:
SQL> update hr.employees
2 set salary = salary * 1.05
3 where
4 department_id = 20
5 /
代碼執(zhí)行后回復(fù)消息稱兩行數(shù)據(jù)已被更新。
注意,以上代碼中并每有像在SQL Server示例那樣鍵入“begin tran”字樣的代碼。Oracle 的SQLPlus隱含啟用交易(你還可以模仿SQL Server的行為,設(shè)置“autocommit to on”自動地提交交易)。接下來我們在SQLPlus更新實例中再執(zhí)行同查詢實例一樣的select語句。

結(jié)果清楚地表明:Michael和Pat的薪水都增加了,然而這個時候我還沒有提交數(shù)據(jù)變更交易。
現(xiàn)在轉(zhuǎn)到第1個SQLPlus查詢實例重新運(yùn)行查詢,結(jié)果如下:

Oracle不需要用戶等待數(shù)據(jù)更新實例中操作被提交,它徑直返回Michael和Pat的查詢信息,但實際上返回的是數(shù)據(jù)更新開始之前的數(shù)據(jù)視圖!

這時候,熟悉SQL Server的人可能會說了,在查詢中設(shè)置(NOLOCK)不也能達(dá)到同樣的效果嗎?可是,對SQL Server而言,在數(shù)據(jù)映像之前是不能獲取數(shù)據(jù)的。指定(NOLOCK)實際上只是得到了沒有提交的數(shù)據(jù)。Oracle的方法則提供了數(shù)據(jù)的一致視圖,所有的信息都是針對交易的、基于存儲數(shù)據(jù)快照的。

如果在SQLPlus的更新實例中提交更新交易在查詢實例中就能看到薪水?dāng)?shù)據(jù)發(fā)生變化。如果在查詢實例中重新運(yùn)行先前的查詢語句,那么Oracle將返回新的薪水?dāng)?shù)值。

存儲數(shù)據(jù)快照
說了半天,在給用戶顯示先前版本的數(shù)據(jù)同時,Oracle是如何允許其他用戶修改數(shù)據(jù)的呢?其實,只要某一用戶啟動了一宗修改數(shù)據(jù)的交易,之前的數(shù)據(jù)映像就會被寫到一個特殊的存儲區(qū)域。這種“前映像”用來向任何查詢數(shù)據(jù)的用戶提供一致的數(shù)據(jù)庫視圖。這樣,當(dāng)其他用戶在修改數(shù)據(jù)的時候,在以上的測試中我們就能看到尚未發(fā)生變更的薪金數(shù)據(jù)。

這個特殊的存儲區(qū)域在哪里呢?這個問題的答案就跟你正在使用的Oracle版本有關(guān)了。在 Oracle 8i及其以前版本中會為這一目的創(chuàng)建特殊的回滾段。然而,這種舉措會給數(shù)據(jù)庫管理員(DBA)帶來管理和調(diào)整數(shù)據(jù)段的工作負(fù)擔(dān)。例如,DBA必須確定為此需要的數(shù)據(jù)段的數(shù)量以及大小等。假如回滾段沒有正確配置,那么對交易而言它們就可能不得不排隊等待回滾段中出現(xiàn)必要的數(shù)據(jù)空間。

Oracle 9i就不同了,這是Oracle的最新版本,Oracle實現(xiàn)了一種新特性,這就是所謂的undo表空間,它有效地消除了以上的管理復(fù)雜性。雖然回滾段仍然可以繼續(xù)使用,但是,DBA現(xiàn)在可以選擇創(chuàng)建undo表空間的方式令Oracle自己管理“前映像”的復(fù)雜空間分配。
Oracle的這種方法對程序員具有重要意義。因為回滾空間不是無限的,所以,更新交易的數(shù)據(jù)快照會取代先前交易的映像。因此,如果必要的回滾段被其他交易的映像覆蓋的話。運(yùn)行時間較長的查詢操作就可能產(chǎn)生“ snapshot too old”錯誤。

下面舉個可能發(fā)生的案例。假設(shè)在上午11:59的時候某位職員開始更新John Doe帳務(wù)的交易。這宗交易在下午12:01被提交。同時,下午12:00某財務(wù)經(jīng)理開始查詢所有的客戶帳務(wù)報表和當(dāng)月收費(fèi)總計。因為客戶很多,所以這一查詢操作很費(fèi)了點時間,但是不論這次操作到底執(zhí)行了多久,反正它檢索出的結(jié)果就是下午12:00數(shù)據(jù)庫中存在的數(shù)據(jù)。如果包含John Doe帳務(wù)前映像的回滾空間在查詢執(zhí)行到該客戶名字的時候被覆蓋則查詢返回錯誤消息。
Oracle的解決方案當(dāng)然更為合理,在抽象意義上提供了相比SQL Server更佳的數(shù)據(jù)一致性。在執(zhí)行Oracle查詢的時候無須擔(dān)心較長的查詢操作會鎖定重要的交易。但是,在兩種數(shù)據(jù)庫同時支持海量用戶的情況下也很難證明Oracle是否就能真正實現(xiàn)具體條件下的數(shù)據(jù)一致性。


溫馨提示:喜歡本站的話,請收藏一下本站!

本類教程下載

系統(tǒng)下載排行

網(wǎng)站地圖xml | 網(wǎng)站地圖html
欧美性猛交xxxx乱大交3| 在线观看免费版| 日韩精品一区二区三区丰满| 国产亚洲在线播放| 亚洲精品视频久久| 久久综合狠狠综合久久激情| 欧美高清视频一区| 欧美激情精品久久久久久| 99精品在线免费视频| 亚洲第一中文字幕在线观看| 影音先锋欧美精品| 樱空桃在线播放| 国产精品精华液网站| 欧美日韩一级大片网址| 欧美精品久久久久久久自慰| 欧美午夜精品一区| 欧美天堂一区二区三区| 国内精品久久久久久久久电影网| 丁香在线视频| 亚洲欧洲国产综合| www.av黄色| 国产伦精品一区二区三区视频我| 羞羞网站在线观看入口免费| 视频一区在线免费看| 日韩国产一区二区三区| 国产男女裸体做爰爽爽| 欧美高清在线播放| 老司机aⅴ在线精品导航| 国产又粗又猛又黄又爽无遮挡| 日本www在线观看视频| 久久99精品国产.久久久久| 香蕉人妻av久久久久天天| 天天干天天操天天做| 色综合影院在线观看| 日韩欧美国产一区二区在线播放| 国产精品69一区二区三区| 国产三级自拍视频| 9久久婷婷国产综合精品性色| 99re这里只有精品首页| 人妻少妇一区二区三区| 日韩精品极品| 欧美成人免费在线视频| 国产av一区二区三区精品| 2020天天干夜夜爽| av动漫免费看| 欧美精品在线一区二区| 亚洲精品一区二区久| 国产精品伊人日日| 91极品女神私人尤物在线播放| 国产精品福利网| 国产精品久久久久天堂| 亚洲精品国产精品乱码不99按摩| 在线手机中文字幕| 日韩av福利| 欧美日韩国产成人在线免费| 在线观看国产日韩| 2020日本在线视频中文字幕| 欧美日韩国产区一| 欧美videossex极品| 国产精品.xx视频.xxtv| 一个人免费观看视频www在线播放| 国产精品91久久久| 亚洲欧美怡红院| 自慰无码一区二区三区| 国产精品99久久不卡二区| 国产一区91| 国产精品美女久久久久久| 中文字幕制服丝袜在线| 午夜电影一区二区三区| 激情影院在线观看| 一本一道无码中文字幕精品热| 中文亚洲视频在线| 日本理论中文字幕| 国产免费一区二区三区四区| 欧美激情喷水视频| 亚洲韩国精品一区| 女人香蕉久久**毛片精品| 四虎精品欧美一区二区免费| 影音先锋久久久| 青椒成人免费视频| 未来日记在线观看| 91视频成人| 国产色99精品9i| 国产美女极品在线| 正在播放亚洲一区| 国产无遮挡裸体视频在线观看| 亚洲伊人影院| 成人av毛片| 黄色在线免费观看大全| 外国成人在线视频| 欧美电影在线观看一区| 欧美一区二区日韩一区二区| 欧美一级欧美三级在线观看| 九九热这里有精品视频| 久久精品国产99国产精品澳门| 91蜜桃婷婷狠狠久久综合9色| 国产精品玖玖玖在线资源| 亚洲女人****多毛耸耸8| 亚洲中文字幕无码爆乳av| youjizz欧美| 欧美第一页浮力影院| 四虎海外影库www4hu| 欧美 日韩 激情| 久久久久久久无码| 久久九九精品视频| 欧美日韩精品免费观看视频完整| 日韩精品一卡二卡| 亚洲宅男网av| 亚洲成人国产综合| 天天在线女人的天堂视频| 91美女视频网站| 菠萝蜜视频网址| 免费国产羞羞网站美图| 国产又粗又猛又色又| 亚洲最大黄色| 热99精品视频| 四虎影视亚洲| 91精品国产综合久久精品麻豆| 一区二区三区视频在线看| 久久久精品在线| 一区二区三区精品牛牛| 国产亚洲精品va在线观看| 国产主播喷水一区二区| 国产性xxxx18免费观看视频| 亚洲一级在线播放| av中文字幕电影在线看| 惠美惠精品网| 一区二区三区精| 在线观看小视频| 影音先锋男人资源站在线观看| 久久蜜桃av一区精品变态类天堂| 潘金莲一级淫片aaaaaa播放| 一区二区三区韩国免费中文网站| 三级a三级三级三级a十八发禁止| 久久伦理中文字幕| 亚洲高清资源在线观看| 国产精品一区二区三区免费视频| 亚洲精品一区二区三区影院| 免费无码毛片一区二区app| 免费av观看网址| 亚洲欧洲专区| 国产精品69毛片高清亚洲| 成人妇女淫片aaaa视频| 欧美亚洲日本一区二区三区| 日本爱爱爱视频| 成人白浆超碰人人人人| 第一av在线| 中文字幕日产av| av电影免费在线看| 蜜桃视频在线观看免费视频网站www| 国产对白在线播放| 久草视频免费在线观看| 在线免费观看黄色av| 色久视频在线观看| 国产在线一二三| 日本丰满少妇裸体自慰| 久久国产日本精品| 欧日韩一区二区三区| 国产精品一区久久久| 国产精品丝袜视频| 欧美午夜aaaaaa免费视频| 国产精品日本一区二区不卡视频| 国产成人精品a视频一区www| 国产一区二中文字幕在线看| 丝袜美腿一区二区三区动态图| 中文字幕 人妻熟女| 成人午夜两性视频| 日本少妇一级片| 久久久久免费看黄a片app| 午夜精品一区二区三区av| 伊人影院蕉久影院在线观看| 成人影院网站ww555久久精品| 国产丝袜美女| 成人久久久精品国产乱码一区二区| 综合毛片免费视频| 最近免费中文字幕视频2019| 国内精品国产三级国产99| 激情图区综合网| 天堂一区二区三区| 亚洲人成在线播放网站岛国| 无码人妻丰满熟妇啪啪网站| 国产欧美精品久久| 99热国产精品| 在线观看av免费观看| 日本中文字幕网| 亚洲美女高潮久久久| 欧美一区二区三区免费在线看| 一区二区日本伦理| 成人性做爰片免费视频| 2023国产精品自拍| 91亚洲国产成人久久精品| 欧美独立站高清久久| 中文字幕一区日韩精品欧美| 91精品大全| 亚洲欧美一区二区三区在线播放| 91亚洲人电影| 538任你躁精品视频网免费| 最新国产精品视频| 色天天综合色天天久久| 男女羞羞网站| 黄色片大全在线观看| 成年人在线观看| 日本三级黄色网址| 欧洲视频在线免费观看| 国产激情无码一区二区三区| 91精品国产一区二区三密臀| 亚洲午夜在线播放| 九九精品在线播放| 日韩一区二区三区在线播放| 久久久久久久综合色一本| 日韩免费视频线观看| 成人直播在线| 国产精品视屏| 91麻豆国产福利精品| 天天干天天干天天操| 日本一区二区视频| 九九热hot精品视频在线播放| 日韩av片永久免费网站| 黄色毛片免费| 国产直播在线| 97超碰人人爽| 91福利国产精品| 亚洲精品国产精品乱码不卡| 国产三区视频在线观看| 人人妻人人添人人爽欧美一区| 亚洲精品不卡| 欧美日韩一区二区三区四区五区| 欧美国产一区二区| 再深点灬舒服灬太大了添少妇视频| 欧美性xxxxx极品视频| 欧美午夜宅男影院在线观看| 久久精品福利| 欧美性aaa| 麻豆免费在线| 香蕉久久免费电影| 国产男女激情视频| www.欧美| 91亚洲精品久久久久久久久久久久| 精品无码av在线| 国产精品福利电影一区二区三区四区| 欧美毛片又粗又长又大| 国产精品久久久一区二区| 污污视频网站免费观看| 亚洲午夜18毛片在线看| 看欧美ab黄色大片视频免费| 在线视频一区二区三| 国产精品一区久久久| 一本大道东京热无码aⅴ| 2020av在线| 天堂√最新版中文在线| 久久不射热爱视频精品| 影音先锋亚洲天堂| 天天做天天爱天天高潮| 99免费观看视频| 高清av中文在线字幕观看1| 亚洲一区中文在线| a视频免费看| 亚洲欧洲成人自拍| 国产精品99久久久久久久vr| 天堂一区二区在线| 黄色av电影在线播放| 欧美专区日韩视频| 一区二区三区毛片| 久久爱.com| 久久777国产线看观看精品| 欧美一三区三区四区免费在线看| 在线观看国产视频| 欧美成人三区| 久久久久久国产精品美女| av在线不卡精品| 午夜伦欧美伦电影理论片| 一区二区三区回区在观看免费视频| 中文乱码人妻一区二区三区视频| 久久综合久久久| 国产91av视频在线观看| 日本一卡二卡在线播放| 伊人网在线播放| 亚洲色图欧美视频| 欧美精品久久久久久| 午夜国产小视频| 人人妻人人澡人人爽精品欧美一区| 亚洲品质自拍视频| 成人va天堂| 日韩av电影免费观看高清| 天堂网一区二区三区| 99在线视频影院| 美女福利视频网| 蜜桃传媒一区二区亚洲| 欧美一站二站| 国产精品青草久久久久福利99| 中文在线a在线| 无人区在线高清完整免费版 一区二| 成人小视频在线| 超级碰碰视频| 色综合久久久久无码专区| 国产极品999| 678在线观看视频| 国产男男gay体育生白袜| 成人性生交大片免费看午夜| 中文字幕无码毛片免费看| 人与动物性xxxx| 四虎成人在线| 欧洲伦理片一区 二区 三区| 一区二区激情小说| 日本不卡视频一区二区| 国产另类ts人妖一区二区| h视频网站在线观看| 在线国产一区二区三区| 91精品久久久久久久蜜月| 国产男女裸体做爰爽爽| 欧美精品激情视频| 北条麻妃亚洲一区| www.激情五月.com| 91精品久久久久久久久久入口| 不用播放器的免费av| 一区二区三区四区免费视频| 欧美日韩国产综合一区二区| 精品无码久久久久成人漫画| 日韩视频第一页| 国产一区二区日韩精品欧美精品| 欧美福利网站| 亚洲国产精品综合久久久| 精品成人国产| 姑娘第5集在线观看免费好剧| 91麻豆国产福利在线观看| 18一19gay欧美视频网站| 两个人看的免费完整在线观看| 国产超碰91|