軟件測試中oracle鎖表

發表于:2010-06-01來源:作者:點擊數: 標簽:軟件測試oracleOracleORACLE
軟件測試中oracle鎖表 lock table BO_ThreeYearInvestProgramHis in exclusive mode nowait; 一,鎖 為了防止用戶在同一時間并發地訪問和修改資源,ORACLE使用不同類型的鎖控制對數據的并發訪問,以防止用戶之間出現破壞性的交互操作 ,oracle 為處理事務自

軟件測試中oracle鎖表

lock table BO_ThreeYearInvestProgramHis in exclusive mode nowait;

一,鎖

為了防止用戶在同一時間并發地訪問和修改資源,ORACLE使用不同類型的鎖控制對數據的并發訪問,以防止用戶之間出現破壞性的交互操作
,oracle 為處理事務自動鎖定資源。

鎖在SQL語句開始它們與數據的相互作用時獲得,并在事務的整個過程中有效

oracle9i使用兩種鎖模式:

.獨占模式(排他):不允許其他任何并發會話以任何方式共享鎖定的資源,修改數據時需要這種鎖。

.共享模式:允許對同一塊數據的并發讀訪問。在更改數據時,上升為獨占模式

一)行級鎖

insert update delete 隱式加行鎖(排他)

select ... for update 顯示加行鎖(共享)

select ...for update 用于顯示鎖定將要更新的數據行,防止其他用戶在更新之前操作此行

如:select * from emp where deptno=30 for update

update emp set ename='Joke' where empno=7499;

在鎖釋放之前,其他用戶不可以對鎖定的數據行進行(修改,刪除)操作,查詢可以

假如有其他用戶要鎖定同一資源:可以使用wait 子句對鎖的等待時間控制

如: 在另一用戶中:select * from emp where deptno=30 for update wait 2 (等待2秒

如2秒鐘還未釋放資源,系統將會給出提示信息

二)表級鎖

共享模式(in share mode)

共享更新模式(in share update mode)

排他鎖模式

鎖定表的通用語法:

lock table 表名 in <share or share update or exclusive mode>;

1) 共享模式

不允許其他用戶插入,更新和刪除行,多個用戶可以同時在同一表上設置共享鎖,這樣設置鎖的多個用戶都只能執行查詢

lock table emp in share mode;

2)共享更新模式(in share update mode)

允許多個用戶同時鎖定表的不同行, 允許其他用戶進行DML(insert update delete select)操作 , 除了已鎖定的行

如: lock table emp in share update mode;

select * from emp where deptno=30 for update //鎖定的行

其他用戶不能delete ,update 部門30的雇員信息

其他用戶可以查看鎖定的行: select * from emp where deptno=30

3)排他鎖模式(限制性強)

不允許其他用戶插入,更新和刪除行, 允許查看數據,但只有一個用戶可以在表中放置排他鎖

lock table emp in exclusive mode;

三) 死鎖

如:USERA: lock table scott.emp in share mode;

USERB: lock table scott.emp in share mode ;

USERA: update scott.emp set ename='Smith' where empno=7369;

USERB: update scott.emp set job='CLERK' where empno=7521;

發生死鎖

原文轉自:http://www.anti-gravitydesign.com

国产97人人超碰caoprom_尤物国产在线一区手机播放_精品国产一区二区三_色天使久久综合给合久久97