Oracle外鍵不加索引引起死鎖示例建站知識
導讀:1建站知識這篇文章主要介紹了Oracle外鍵不加索引引起死鎖的情況及解決,需要的朋友可以參考下如何seo優化推廣網站高端網站建設。
--創建一個表,此表作為子表 create table fk_t as select *from user_objects; delete from fk_t where object_id is null; commit; --創建一個表,此表作為父表 create table pk_t as select *from user_objects; d網站建設制作elete from pk_t where object_id is null; commit; --創建父表的主鍵 alter table PK_t add constraintpk_pktable primary key (OBJECT_ID); --創建子表的外鍵 alter table FK_t addconstraint fk_fktable foreign key (OBJECT_ID) references pk_t (OBJECT_ID); --session1:執行一個刪除操作,這時候在子表和父表上都加了一個Row-S(SX)鎖 delete from fk_t whereobject_id=100; delete from pk_t where object_id=100; --session2:執行另一個刪除操作,網站優化seo培訓發現這時候第二個刪除語句等待 delete from fk_t whereobject_id=200; delete from pk_t whereobject_id=200; --回到session1:死鎖馬上發生 delete from pk_t whereobject_id=100; session2中報錯: SQL> delete from pk_table where object_id=200; delete from pk_table where object_id=200 * 第 1seo網站關鍵詞優化 行出現錯誤: ORA-00060: 等待資源時檢測到死鎖 當對子表的外鍵列添加索引后,死鎖被消除,因為這時刪除父表記錄不需要對子表加表級鎖。 --為外鍵建立索引 create index ind_pk_object_id on fk_t(object_id) nologging; --重復上面的操作session1 delete from fk_t whereobject_id=100; delete from pk_t whereobject_id=100; --session2 delete from fk_t whereobject_id=200; delete from pk_t whereobject_id=200; --回到session1不會發生死鎖 delete from pk_t whereobject_id=100;相關如何seo優化推廣網站高端網站建設。
聲明: 本文由我的SEOUC技術文章主頁發布于:2023-05-22 ,文章Oracle外鍵不加索引引起死鎖示例建站知識主要講述死鎖,示例,Oracle外鍵不加索引引起死鎖示例建站知網站建設源碼以及服務器配置搭建相關技術文章。轉載請保留鏈接: http://www.bifwcx.com/article/web_4317.html