使用Sybase行鎖說明及測試文檔_第1頁
使用Sybase行鎖說明及測試文檔_第2頁
使用Sybase行鎖說明及測試文檔_第3頁
使用Sybase行鎖說明及測試文檔_第4頁
使用Sybase行鎖說明及測試文檔_第5頁
已閱讀5頁,還剩7頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

SUHTEKGROLJPX M ■Sybasel1.9.X表級鎖與行級鎖的轉換SIJNTEKSUNTEKGROUP一、 簡介Sybase通過封鎖來保證當前活動事務使用的數據的一致性,數據的一致性是指如果多個用戶重復執(zhí)行一組事務,每次的結果應該是相同的,即并發(fā)的查詢和修改互不干擾。Sybase11.9.X支持三種封鎖級別:行級鎖、頁面鎖和表級鎖。行級鎖是對操作的數據行封鎖,頁面鎖是對數據或索引頁的所有數據行封鎖,表級鎖是對整個表封鎖。Sybase11.9.X系統(tǒng)默認的封鎖類型是表級鎖,一般來說,將封鎖類型設為行級鎖可以降低封鎖沖突。以下將介紹如何將Sybasel1.9.X系統(tǒng)的封鎖類型設為行級鎖。二、操作方法?修改Sybase11.9.X系統(tǒng)封鎖類型:可通過如下指令:sp_configurelockscheme*J/datarows*go(其中datarows表示行?級鎖、datapages表示頁級鎖、allpages表示表級鎖)將數據庫默認的封鎖級別由表級鎖改為行級鎖。修改之后通過指令:sp_configurelockscheme*go查詢已修改數據庫系統(tǒng)的封鎖類型。但是這種設置方法只能對在設置之后創(chuàng)建的表生效,也就是說己經創(chuàng)建的表仍然保留數據庫原來的設置。要改變已創(chuàng)建的表的鎖級別,請按下步操作?!鲂薷募簞?chuàng)建表的封鎖類型:仁 進入需操作的數據庫,運行下面語句:select'altertable*,name,'lockdatarows',char(13),'go'fromsysobjectswheretype='U'go生成批量將表改為行級鎖的腳本,如下例:altertabletest lockdatarowsgolockdatarowsaltertabletestllockdatarowsgo2、 運行生成的腳本,每次操作5條記錄,對于如下報錯:ServerMessage:Number4963,Severity16Line1:Table'test1isalreadylockedinthedesiredlockingscheme.可不預理會,報錯是說明表已經定義為行鎖。對于操作等待,一般是由于有其它會話正在對該表進行加鎖操作,這種情況或者等待加鎖的會話運行結束或者暫時退出,請數據庫較閑時再進行操作。測試報告由于查詢操作將對執(zhí)行查詢的表加共亨鎖,而插表、更新表操作將對執(zhí)行操作的表加排他鎖。所以測試將選擇查詢、插表、更新表三種SQL操作來測試修改Sybasel1.9.X表級鎖與行級鎖的轉換行級鎖時數據庫的并發(fā)性。首先創(chuàng)建測試表:createtabletest(no int notnull,name varchar(10) notnull,constraintpkyjestprimarykey(no))go測試編號:1.1測試項目:修改為行級鎖前數據庫狀況系統(tǒng)功能:修改為行級鎖前插表、查詢操作系統(tǒng)響應:1.系統(tǒng)響應:1.(1rowaffected)2.Noname1Mike用戶操作:1、 執(zhí)行以下SQL:insertintotestvalues(1,‘Mike')go2、 執(zhí)行以下SQL:select*fromtestgo測試結果及分析:ok測試編號:1.2測試項目:正在表操作時,同時修改為行級鎖數據庫狀況系統(tǒng)功能:正在查詢時,同時進行行級鎖修改測試程序:用戶操作:執(zhí)行以下SQL:begintranselect*fromtestgo打開另一session,執(zhí)行以下SQL:altertabletestlockdatarowsgo在另一個session中執(zhí)行SQL:committrango系統(tǒng)響應:1.no nameMikeJack成功執(zhí)行。將事務提交。測試結果及分析:ok測試編號:1.3測試項目:正在表操作時,同時修改為行級鎖數據庫狀況系統(tǒng)功能:正在插表時,同時進行行級鎖修改

測試程序:用戶操作:系統(tǒng)響應:1.執(zhí)行以下SQL:1.begintran1rowaffected)insertintotestvalues(2,JackJgo2.打開另一session,執(zhí)行以下SQL:2.處于等待狀態(tài)。altertabletestlockdatarowsNo namego3.在另一個session中執(zhí)行SQL:1Mikecommittrango3.第二session執(zhí)行成功。測試結果及分析:ok測試編號:1.4測試項目:修改為行級鎖后數據庫狀況系統(tǒng)功能:修改為行級鎖前插表、查詢操作

測試程序:用戶操作:執(zhí)行以下SQL:insertintotestvalues(3,,Rose,)go2、 執(zhí)行以下SQL:select*fromtestgo系統(tǒng)響應:1.1rowaffected)2.no nameMikeJackRose測試結果及分析:ok測試編號:1.5測試項目:正在表操作時,同時修改數據庫系統(tǒng)參數的數據庫狀況系統(tǒng)功能:正在插表時,同時進行數據庫鎖類弄參數據的修改-

測試程序:用戶操作:執(zhí)行以下SQL:begintraninsertintotest(4/Jane')go打開另一session,執(zhí)行以下SQL:sp_configure lockscheme\1,datarowsgo在另一個session中執(zhí)行SQL:committrango系統(tǒng)響應:1.1rowaffected)成功執(zhí)行。將事務提交。測試結果及分析:ok測試編號:1.6測試項目:對表進行行操作時,同時對同一表的另一行操作的數據庫狀況系統(tǒng)功能:對表的一行執(zhí)行update,同時對同一表的另一行執(zhí)行update,將不互相影響

測試程序:用戶操作:執(zhí)行以下SQL:begintrangoupdatetestsetname=,jessica,wherego打開另一session,執(zhí)行以下SQL:begintrangoupdatetestsetname=,john,whereno=2go在兩個session中執(zhí)行SQ

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論