oracle併發控制
CREATE TABLE DEPT(DEPTNO INT PRIMARY KEY,
SUM_OF_SALARY NUMBER)
/
CREATE TABLE EMP(EMPTO INT PRIMARY KEY,
DEPTNO REFERENCES DEPT,
SALARY NUMBER)
/
--有外來鍵的表,不管依賴的表是否有資料,都不能夠TRUNCATE,可以先禁用外來鍵,再TRUNCATE,或者DELETE
/
ALTER TABLE EMP MODIFY CONSTRAINT SYS_C0030089 DISABLE;
/
TRUNCATE TABLE DEPT
/
ALTER TABLE EMP MODIFY CONSTRAINT SYS_C0030089 ENABLE
/
DELETE FROM DEPT
/
TRUNCATE TABLE EMP
/
--併發控制測試
INSERT INTO DEPT (DEPTNO) VALUES(1);
/
INSERT INTO DEPT (DEPTNO) VALUES(2);
/
INSERT INTO EMP(EMPTO,DEPTNO,SALARY)
VALUES(100,1,55);
/
INSERT INTO EMP(EMPTO,DEPTNO,SALARY)
VALUES(101,1,50);
/
SELECT * FROM DEPT
/
SELECT * FROM EMP
/
--SESSINO 1
INSERT INTO EMP(EMPTO,DEPTNO,SALARY)
VALUES(102,2,60);
--SESSINO 2
UPDATE EMP SET DEPTNO=2 WHERE EMPTO=100;
--SESSINO 2
UPDATE DEPT SET SUM_OF_SALARY=(SELECT SUM(SALARY) FROM EMP WHERE EMP.DEPTNO=DEPT.DEPTNO)
WHERE DEPT.DEPTNO IN(1,2)
--SESSINO 1
UPDATE DEPT SET SUM_OF_SALARY=(SELECT SUM(SALARY) FROM EMP WHERE EMP.DEPTNO=DEPT.DEPTNO)
WHERE DEPT.DEPTNO=2
此時會話1被阻塞但是會話1的讀取部分(查詢)已經處理好了,一致性讀的機制凍結了該結果。
--SESSINO 2
commit
SELECT * FROM DEPT
session 1看到的結果?
session 2看到的結果?
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/25323853/viewspace-716871/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- oracle併發與多版本控制Oracle
- 併發控制
- Guava併發:使用Monitor控制併發Guava
- oracle的單例項併發控制:Latch(二)Oracle單例
- oracle的單例項併發控制:Lock(一)Oracle單例
- goroutine併發控制Go
- mysql併發控制MySql
- PGSQL併發控制SQL
- 併發程式設計之:JUC併發控制工具程式設計
- PostgreSQL 併發控制機制(3):基於時間戳的併發控制SQL時間戳
- 【資料庫】併發控制資料庫
- 更簡的併發程式碼,更強的併發控制
- go併發之goroutine和channel,併發控制入門篇Go
- MySQL如何加鎖控制併發MySql
- pgsql事務與併發控制SQL
- InnoDB -MVCC多版本併發控制MVC
- MySQL MVCC(多版本併發控制)MySqlMVC
- 15-併發控制理論
- oracle併發問題Oracle
- 5分鐘搞定Promise控制併發Promise
- MVCC多版本併發控制器MVC
- 淺談java中的併發控制Java
- mysql併發控制原理知識點MySql
- 3.1 JDK併發包之同步控制JDK
- Java併發控制機制詳解Java
- mysql的mvcc(多版本併發控制)MySqlMVC
- 資料複製的併發控制
- 【C/C++】5.併發控制C++
- Go高效併發 10 | Context:多執行緒併發控制神器GoContext執行緒
- 併發工具類(三)控制併發執行緒的數量 Semphore執行緒
- 《高效能MySQL》筆記-併發控制MySql筆記
- Shell 指令碼程式併發&程式數控制指令碼
- MySQL-16.MVCC(多版本併發控制)MySqlMVC
- 【作業系統】2.併發控制作業系統
- PostgreSQL中多版本併發控制詳解SQL
- 20170526-27關於GCD控制執行緒併發數,多執行緒併發數控制GC執行緒
- golang 限流器,控制併發,執行緒池Golang執行緒
- 五、併發控制(1):執行緒的互斥執行緒