青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

Prayer

在一般中尋求卓越
posts - 1256, comments - 190, trackbacks - 0, articles - 0
  C++博客 :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

2005 年 12 月 26 日

在實(shí)際的生產(chǎn)運(yùn)行環(huán)境中,筆者在國(guó)內(nèi)很多客戶現(xiàn)場(chǎng)都看到開發(fā)人員和系統(tǒng)管理人員遇到很多有關(guān)于鎖而引起的性能問題,進(jìn)而被多次問起DB2和Oracle中鎖的區(qū)別比較問題,筆者根據(jù)自己在工作中對(duì)DB2和Oracle數(shù)據(jù)庫(kù)的使用經(jīng)驗(yàn)積累寫下這篇文章。

1 引言

在關(guān)系數(shù)據(jù)庫(kù)(DB2,Oracle,Sybase,Informix和SQL Server)最小的恢復(fù)和交易單位為一個(gè)事務(wù)(Transactions),事務(wù)具有ACID(原子性,一致性,隔離性和永久性)特征。關(guān)系數(shù)據(jù)庫(kù)為了確保并發(fā)用戶在存取同一數(shù)據(jù)庫(kù)對(duì)象時(shí)的正確性(即無丟失更新、可重復(fù)讀、不讀"臟"數(shù)據(jù),無"幻像"讀),數(shù)據(jù)庫(kù)中引入了并發(fā)(鎖)機(jī)制。基本的鎖類型有兩種:排它鎖(Exclusive locks記為X鎖)和共享鎖(Share locks記為S鎖)。

排它鎖:若事務(wù)T對(duì)數(shù)據(jù)D加X鎖,則其它任何事務(wù)都不能再對(duì)D加任何類型的鎖,直至T釋放D上的X鎖;一般要求在修改數(shù)據(jù)前要向該數(shù)據(jù)加排它鎖,所以排它鎖又稱為寫鎖。

共享鎖:若事務(wù)T對(duì)數(shù)據(jù)D加S鎖,則其它事務(wù)只能對(duì)D加S鎖,而不能加X鎖,直至T釋放D上的S鎖;一般要求在讀取數(shù)據(jù)前要向該數(shù)據(jù)加共享鎖,所以共享鎖又稱為讀鎖。

2 DB2 多粒度封鎖機(jī)制介紹

2.1 鎖的對(duì)象

DB2支持對(duì)表空間、表、行和索引加鎖(大型機(jī)上的數(shù)據(jù)庫(kù)還可以支持對(duì)數(shù)據(jù)頁(yè)加鎖)來保證數(shù)據(jù)庫(kù)的并發(fā)完整性。不過在考慮用戶應(yīng)用程序的并發(fā)性的問題上,通常并不檢查用于表空間和索引的鎖。該類問題分析的焦點(diǎn)在于表鎖和行鎖。

2.2 鎖的策略

DB2可以只對(duì)表進(jìn)行加鎖,也可以對(duì)表和表中的行進(jìn)行加鎖。如果只對(duì)表進(jìn)行加鎖,則表中所有的行都受到同等程度的影響。如果加鎖的范圍針對(duì)于表及下屬的行,則在對(duì)表加鎖后,相應(yīng)的數(shù)據(jù)行上還要加鎖。究竟應(yīng)用程序是對(duì)表加行鎖還是同時(shí)加表鎖和行鎖,是由應(yīng)用程序執(zhí)行的命令和系統(tǒng)的隔離級(jí)別確定。

2.2.1 DB2表鎖的模式

DB2在表一級(jí)加鎖可以使用以下加鎖方式:


表一:DB2數(shù)據(jù)庫(kù)表鎖的模式

下面對(duì)幾種表鎖的模式進(jìn)一步加以闡述:

IS、IX、SIX方式用于表一級(jí)并需要行鎖配合,他們可以阻止其他應(yīng)用程序?qū)υ摫砑由吓潘i。

  • 如果一個(gè)應(yīng)用程序獲得某表的IS鎖,該應(yīng)用程序可獲得某一行上的S鎖,用于只讀操作,同時(shí)其他應(yīng)用程序也可以讀取該行,或是對(duì)表中的其他行進(jìn)行更改。
  • 如果一個(gè)應(yīng)用程序獲得某表的IX鎖,該應(yīng)用程序可獲得某一行上的X鎖,用于更改操作,同時(shí)其他應(yīng)用程序可以讀取或更改表中的其他行。
  • 如果一個(gè)應(yīng)用程序獲得某表的SIX鎖,該應(yīng)用程序可以獲得某一行上的X鎖,用于更改操作,同時(shí)其他應(yīng)用程序只能對(duì)表中其他行進(jìn)行只讀操作。

S、U、X和Z方式用于表一級(jí),但并不需要行鎖配合,是比較嚴(yán)格的表加鎖策略。

  • 如果一個(gè)應(yīng)用程序得到某表的S鎖。該應(yīng)用程序可以讀表中的任何數(shù)據(jù)。同時(shí)它允許其他應(yīng)用程序獲得該表上的只讀請(qǐng)求鎖。如果有應(yīng)用程序需要更改讀該表上的數(shù)據(jù),必須等S鎖被釋放。
  • 如果一個(gè)應(yīng)用程序得到某表的U鎖,該應(yīng)用程序可以讀表中的任何數(shù)據(jù),并最終可以通過獲得表上的X鎖來得到對(duì)表中任何數(shù)據(jù)的修改權(quán)。其他應(yīng)用程序只能讀取該表中的數(shù)據(jù)。U鎖與S鎖的區(qū)別主要在于更改的意圖上。U鎖的設(shè)計(jì)主要是為了避免兩個(gè)應(yīng)用程序在擁有S鎖的情況下同時(shí)申請(qǐng)X鎖而造成死鎖的。
  • 如果一個(gè)應(yīng)用程序得到某表上的X鎖,該應(yīng)用程序可以讀或修改表中的任何數(shù)據(jù)。其他應(yīng)用程序不能對(duì)該表進(jìn)行讀或者更改操作。
  • 如果一個(gè)應(yīng)用程序得到某表上的Z鎖,該應(yīng)用程序可以讀或修改表中的任何數(shù)據(jù)。其他應(yīng)用程序,包括未提交讀程序都不能對(duì)該表進(jìn)行讀或者更改操作。

IN鎖用于表上以允許未提交讀這一概念。

2.2.2 DB2行鎖的模式

除了表鎖之外,DB2還支持以下幾種方式的行鎖。


表二:DB2數(shù)據(jù)庫(kù)行鎖的模式

2.2.3 DB2鎖的兼容性


表三:DB2數(shù)據(jù)庫(kù)表鎖的相容矩陣


表四:DB2數(shù)據(jù)庫(kù)行鎖的相容矩陣

下表是筆者總結(jié)了DB2中各SQL語(yǔ)句產(chǎn)生表鎖的情況(假設(shè)缺省的隔離級(jí)別為CS):



2.3 DB2鎖的升級(jí)

每個(gè)鎖在內(nèi)存中都需要一定的內(nèi)存空間,為了減少鎖需要的內(nèi)存開銷,DB2提供了鎖升級(jí)的功能。鎖升級(jí)是通過對(duì)表加上非意圖性的表鎖,同時(shí)釋放行鎖來減少鎖的數(shù)目,從而達(dá)到減少鎖需要的內(nèi)存開銷的目的。鎖升級(jí)是由數(shù)據(jù)庫(kù)管理器自動(dòng)完成的,有兩個(gè)數(shù)據(jù)庫(kù)的配置參數(shù)直接影響鎖升級(jí)的處理:

locklist--在一個(gè)數(shù)據(jù)庫(kù)全局內(nèi)存中用于鎖存儲(chǔ)的內(nèi)存。單位為頁(yè)(4K)。

maxlocks--一個(gè)應(yīng)用程序允許得到的鎖占用的內(nèi)存所占locklist大小的百分比。

鎖升級(jí)會(huì)在這兩種情況下被觸發(fā):

  • 某個(gè)應(yīng)用程序請(qǐng)求的鎖所占用的內(nèi)存空間超出了maxlocks與locklist的乘積大小。這時(shí),數(shù)據(jù)庫(kù)管理器將試圖通過為提出鎖請(qǐng)求的應(yīng)用程序申請(qǐng)表鎖,并釋放行鎖來節(jié)省空間。
  • 在一個(gè)數(shù)據(jù)庫(kù)中已被加上的全部鎖所占的內(nèi)存空間超出了locklist定義的大小。這時(shí),數(shù)據(jù)庫(kù)管理器也將試圖通過為提出鎖請(qǐng)求的應(yīng)用程序申請(qǐng)表鎖,并釋放行鎖來節(jié)省空間。
  • 鎖升級(jí)雖然會(huì)降低OLTP應(yīng)用程序的并發(fā)性能,但是鎖升級(jí)后會(huì)釋放鎖占有內(nèi)存并增大可用的鎖的內(nèi)存空間。

鎖升級(jí)是有可能會(huì)失敗的,比如,現(xiàn)在一個(gè)應(yīng)用程序已經(jīng)在一個(gè)表上加有IX鎖,表中的某些行上加有X鎖,另一個(gè)應(yīng)用程序又來請(qǐng)求表上的IS鎖,以及很多行上的S鎖,由于申請(qǐng)的鎖數(shù)目過多引起鎖的升級(jí)。數(shù)據(jù)庫(kù)管理器試圖為該應(yīng)用程序申請(qǐng)表上的S鎖來減少所需要的鎖的數(shù)目,但S鎖與表上原有的IX鎖沖突,鎖升級(jí)不能成功。

如果鎖升級(jí)失敗,引起鎖升級(jí)的應(yīng)用程序?qū)⒔拥揭粋€(gè)-912的SQLCODE。在鎖升級(jí)失敗后,DBA應(yīng)該考慮增加locklist的大小或者增大maxlocks的百分比。同時(shí)對(duì)編程人員來說可以在程序里對(duì)發(fā)生鎖升級(jí)后程序回滾后重新提交事務(wù)(例如:if sqlca.sqlcode=-912 then rollback and retry等)。

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            狠狠色丁香久久婷婷综合_中| 亚洲精选视频免费看| 国产在线播精品第三| 国产精品高清一区二区三区| 欧美日韩三级一区二区| 欧美久久视频| 欧美精品午夜| 国产精品入口夜色视频大尺度| 国产精品久久久久久久浪潮网站 | 猫咪成人在线观看| 久久久不卡网国产精品一区| 久久精品欧美| 欧美成人精品高清在线播放| 欧美日韩国产综合视频在线| 国产精品久久久久久久7电影| 国产精品影片在线观看| 激情成人在线视频| 9i看片成人免费高清| 亚洲欧美在线看| 久久综合激情| 亚洲全部视频| 亚洲午夜女主播在线直播| 欧美一区二区视频97| 欧美国产日韩二区| 国产日韩欧美在线播放| 91久久线看在观草草青青| 亚洲综合久久久久| 欧美福利视频| 亚洲天堂视频在线观看| 蜜臀a∨国产成人精品| 国产精品麻豆欧美日韩ww| 亚洲经典在线| 久久久999| 亚洲视频在线一区| 欧美丰满少妇xxxbbb| 国内精品伊人久久久久av一坑| 日韩手机在线导航| 久久手机精品视频| 亚洲主播在线观看| 欧美日韩精品一本二本三本| 国产一在线精品一区在线观看| 99精品热视频| 欧美国产日韩一区| 亚洲一级免费视频| 老司机精品福利视频| 亚洲一级黄色片| 欧美激情国产日韩| 亚洲韩国精品一区| 欧美成人精品福利| 久久精品欧美| 精品动漫av| 久久精品成人一区二区三区蜜臀| 日韩一级精品| 欧美日韩国产一区二区三区| 最新成人av网站| 免费一区视频| 久久免费视频观看| 黑人中文字幕一区二区三区| 欧美在线你懂的| 亚洲欧洲99久久| 国产欧美一区二区在线观看| 一区二区三区|亚洲午夜| 亚洲激情专区| 国产精品美女在线观看| 欧美激情亚洲综合一区| 亚洲国产欧美精品| 欧美大胆成人| 欧美电影美腿模特1979在线看| 在线观看欧美激情| 欧美r片在线| 欧美暴力喷水在线| 亚洲裸体视频| 一区二区欧美亚洲| 国产精品久在线观看| 亚洲综合另类| 新狼窝色av性久久久久久| 国产一区二区高清| 欧美成人精品高清在线播放| 欧美14一18处毛片| 亚洲视频在线一区| 午夜亚洲福利| 亚洲青色在线| 在线天堂一区av电影| 国产欧美精品在线播放| 狂野欧美一区| 欧美日本亚洲| 久久精品国产免费看久久精品| 久久精彩免费视频| 99视频在线观看一区三区| 中文无字幕一区二区三区| 韩国在线视频一区| 亚洲黄网站黄| 国产农村妇女毛片精品久久麻豆 | 欧美亚洲一级| 久久午夜国产精品| 亚洲婷婷国产精品电影人久久 | 欧美金8天国| 午夜精品福利视频| 久久综合久久久| 亚洲自拍电影| 另类天堂视频在线观看| 亚洲欧美日韩国产综合精品二区| 欧美在线免费一级片| 99国产精品国产精品久久| 亚洲视屏在线播放| 欧美综合激情网| 夜夜嗨av一区二区三区| 久久成人精品| 亚洲一区二区影院| 久久综合久久综合这里只有精品 | 另类成人小视频在线| 亚洲一区二区动漫| 免费视频久久| 久久婷婷国产综合国色天香| 欧美日韩国产综合一区二区| 久久综合狠狠| 国内精品视频666| 亚洲欧美在线观看| 亚洲图片欧洲图片日韩av| 免费不卡在线观看| 久久亚洲精品欧美| 精品成人久久| 欧美顶级艳妇交换群宴| 久久不射中文字幕| 欧美日韩国产综合在线| 欧美黄色视屏| 激情自拍一区| 久久av二区| 欧美在线观看视频一区二区三区| 欧美日韩色一区| 欧美激情精品久久久久久黑人| 国产亚洲精品美女| 亚洲伊人伊色伊影伊综合网| 亚洲午夜久久久久久久久电影网| 欧美成人激情视频| 亚洲高清一区二| 亚洲黄色在线观看| 女主播福利一区| 欧美国产日本韩| 136国产福利精品导航| 久久久久国产精品www| 久久免费国产精品1| 国产亚洲精品v| 久久精品免费观看| 欧美国内亚洲| 日韩一级网站| 欧美日韩国产综合网| 一区二区三区免费观看| 亚洲淫性视频| 国产日韩欧美在线一区| 久久国产精彩视频| 蜜臀91精品一区二区三区| 亚洲国产精品第一区二区三区| 美国十次成人| 亚洲精品在线免费| 亚洲一区二区日本| 国产欧美日韩中文字幕在线| 亚洲欧美日韩国产综合在线| 欧美在线看片| 亚洲国产精品传媒在线观看| 欧美日韩一区二区在线视频| 亚洲一区二区三区高清不卡| 久久久久综合网| 亚洲国产毛片完整版 | 欧美日本亚洲韩国国产| 亚洲一区二区欧美| 久久美女艺术照精彩视频福利播放| 在线成人av网站| 欧美国产亚洲视频| 亚洲一区三区视频在线观看| 久久久久一区二区| 亚洲精品久久久蜜桃| 国产精品v一区二区三区| 久久成人一区二区| 亚洲福利视频二区| 欧美一级成年大片在线观看| 精品二区视频| 国产精品久久久久久久久果冻传媒 | 国产精品日韩一区二区三区| 久久国内精品自在自线400部| 亚洲第一主播视频| 亚洲一区二区三区乱码aⅴ| 伊人久久久大香线蕉综合直播| 欧美日韩国产免费| 性做久久久久久免费观看欧美| 午夜精品福利电影| 亚洲欧美日本国产有色| 怡红院精品视频| 欧美午夜片在线观看| 久久精品日韩| 亚洲一二三区视频在线观看| 欧美freesex交免费视频| 亚洲视频在线看| 亚洲国产三级在线| 国产亚洲精品成人av久久ww| 国产精品99免费看 | 亚洲女女做受ⅹxx高潮| 亚洲高清在线精品| 美女任你摸久久| 久久成人一区二区|