91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

無索引的外鍵之主表子表DML操作實驗及結論

發布時間:2020-08-05 05:04:32 來源:ITPUB博客 閱讀:212 作者:不一樣的天空w 欄目:關系型數據庫

子表上的insert 操作執行后不提交,會阻塞后續主表上的update、delete、insert操作(針對包含主鍵列的的操作),主表、

子表都是TM鎖,外鍵加索引后消除阻塞問題。   

create table test_pk1 (id number,pcol varchar2(1)) tablespace users;

alter table test_pk1 add constraint pk_test_pk1_id primary key(id) using index tablespace users;

insert into test_pk1 values(1,'A');

insert into test_pk1 values(2,'B');

insert into test_pk1 values(3,'C');

insert into test_pk1 values(4,'D');

insert into test_pk1 values(5,'E');

commit;

create table test_fk1 (id number,fcol varchar2(1)) tablespace users;

alter table test_fk1 add constraint fk_test_fk1_id foreign key(id) references test_pk1(id);

insert into test_fk1 values(1,'a');

insert into test_fk1 values(2,'a');

commit;

場景一:子表執行insert操作后不提交,另一個事務對主表進行update、delete、insert

--子表

insert into test_fk1 values(5,'d');

--主表

update test_pk1 set id=55 where id='4';

delete test_pk1 where id='3';

insert into test_pk1 values(6,'F');

結論:子表上的insert 操作執行后不提交,會阻塞后續主表上的update、delete、insert操作(針對包含主鍵列的的操作),

主表、子表都是TM鎖。

--給外鍵加索引后,然后進行主表的update、delete、insert操作看是否會有影響

create index idx_id on test_fk1(id);

結論:外鍵加索引后消除阻塞問題。  

場景二:子表執行update操作后不提交,另一個事務對主表進行update、delete、insert 

--子表

update test_fk1 set fcol='b' where id='2';

--主表

update test_pk1 set id=55 where id='4';

delete test_pk1 where id='3';

insert into test_pk1 values(6,'F');

結論:子表上的update操作執行后不提交,對主表上的update、delete、insert操作無影響。

場景三:子表執行delete操作后不提交,另一個事務對主表進行update、delete、insert 

--子表

delete test_fk1 where id='2';

--主表

update test_pk1 set id=55 where id='4';

delete test_pk1 where id='3';

insert into test_pk1 values(6,'F');

結論:子表上的delete操作執行后不提交,對主表上的update、delete、insert操作無影響。

場景四:主執行delete操作后不提交,另一個事務對子表進行update、delete、insert 

--主表

delete test_pk1 where id='3';

--子表

update test_fk1 set fcol='A' where id='1';

insert into test_fk1 values(4,'d');

delete test_fk1 where id='2';

結論:主表上的delete操作執行后不提交,對子表上的update、delete、insert操作無影響。

場景五:主執行update操作后不提交,另一個事務對子表進行update、delete、insert 

--主表

update test_pk1 set pcol='F' where id='5';

--子表

update test_fk1 set fcol='A' where id='1';

insert into test_fk1 values(4,'d');

delete test_fk1 where id='2';

結論:主表上的update操作執行后不提交,對子表上的update、delete、insert操作無影響。

場景五:主執行insert操作后不提交,另一個事務對子表進行update、delete、insert 

--主表

insert into test_pk1 values(6,'F');

--子表

update test_fk1 set fcol='A' where id='1';

insert into test_fk1 values(4,'d');

delete test_fk1 where id='2';

結論:主表上的delete操作執行后不提交,對子表上的update、delete、insert操作無影響。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

阿克| 化州市| 来凤县| 灵璧县| 抚顺县| 洛川县| 天峻县| 尼勒克县| 香港| 集贤县| 乌拉特前旗| 象州县| 普定县| 明光市| 玛纳斯县| 新野县| 军事| 普陀区| 蓝山县| 前郭尔| 临武县| 沿河| 新乡市| 靖边县| 白山市| 濉溪县| 海原县| 资讯| 冀州市| 玛沁县| 墨竹工卡县| 巩义市| 沽源县| 大宁县| 邻水| 嵊泗县| 图片| 武平县| 舞钢市| 博乐市| 霍山县|