Oracle 數(shù)據(jù)庫(kù)針對(duì)表主鍵列并發(fā)導(dǎo)致行級(jí)鎖簡(jiǎn)單演
導(dǎo)讀:1建站知識(shí)本文簡(jiǎn)單演示針對(duì)表主鍵并發(fā)導(dǎo)致的行級(jí)鎖,鎖的產(chǎn)生是因?yàn)椴l(fā)。沒(méi)有并發(fā),就沒(méi)有鎖。并發(fā)的產(chǎn)生是因?yàn)橄到y(tǒng)需網(wǎng)站建設(shè)哪家好企業(yè)網(wǎng)站建設(shè)。
本文內(nèi)容 •軟件環(huán)境 •簡(jiǎn)單演示 Oracle 數(shù)據(jù)庫(kù)并發(fā)導(dǎo)致行級(jí)鎖 本文簡(jiǎn)單演示針對(duì)表主鍵并發(fā)導(dǎo)致的行級(jí)鎖。并發(fā)是兩個(gè)以上的用戶對(duì)同樣的數(shù)據(jù)進(jìn)行修改(包括插入、刪除和修改)。鎖的產(chǎn)生是因?yàn)椴l(fā)。沒(méi)有并發(fā),就沒(méi)有鎖。并發(fā)的產(chǎn)生是因?yàn)橄到y(tǒng)需要,系統(tǒng)需要是因?yàn)橛脩粜枰?軟件環(huán)境 -------------------------------------------------------------------------------- •Windows 2003 Server •Oracle 11g Release 1 (11.1) 簡(jiǎn)單演示 Oracle 數(shù)據(jù)庫(kù)并發(fā)導(dǎo)致行級(jí)鎖 首先,打開(kāi)一個(gè)會(huì)話 session 1,執(zhí)行如下操作:
復(fù)制代碼 代碼如下:
SQL> select distinct sid from V$mystat; SID ---------- 118 SQL> create table t (x int primary key); 表已創(chuàng)建。 SQL> insert into t values(1); 已創(chuàng)建 1 行。 SQL> updat網(wǎng)站seo優(yōu)化診斷工具e t set x=10 where x=1; 已更新 1 行。 SQL>
先查看本次會(huì)話的 SID,然后創(chuàng)建一個(gè)表 t,只有一個(gè)名為 x 的字段,seo網(wǎng)站優(yōu)化且該字段為主鍵,插入一條數(shù)據(jù),并更新該數(shù)據(jù)。 接下來(lái),打開(kāi)另一個(gè)會(huì)話 session 2:復(fù)制代碼 代碼如下:
SQL> select distinct sid from V$mystat; SID ---------- 137 SQL> update t set x=10 where x=1;
此時(shí),該會(huì)話被“卡”在這里不動(dòng)。只是光標(biāo)一直在閃……因?yàn)椋瑂ession 2 被 session 1 阻塞。 現(xiàn)在,查看鎖定視圖 V$LOCK。復(fù)制代碼 代碼如下:
SQL> select sid,type,id1,id2,lmode,request,block 2 fro公司網(wǎng)站建設(shè)m v$lock where sid in (118,137) 3 order by sid;
已選擇6行。 SQL> 說(shuō)明:“TYPE”列表示鎖的類型;“LMODE”列表示鎖的模式;“ID1”和“ID2”列是鎖的相關(guān)信息。“REQUEST”列是正在什么鎖。SID=118 是第一個(gè)會(huì)話,SID=137 是第二個(gè)會(huì)話。第三行,第一個(gè)會(huì)話 BLOCK=1 表示這個(gè)會(huì)話正在阻塞其他會(huì)話,LMODE=6 表示鎖的模式,即行級(jí)排他鎖。第六行,第二個(gè)會(huì)話 REQUEST=6 表示當(dāng)前會(huì)話正在等待一個(gè) LMODE=6 的鎖。注意,第三行和第六行的 ID1 和 ID2 列完全相同。因?yàn)樗鼈冎赶蚪y(tǒng)一資源,只不過(guò)一個(gè)是資源的擁有者(SID=118),一個(gè)是資源的等待者(SID=137)。 通過(guò)這個(gè)視圖,很容易發(fā)現(xiàn)所在——故障定位(trouble shooting)。會(huì)話 2 之所以被“卡”住,是因?yàn)闀?huì)話 1 還沒(méi)提交,而在這張表上,又恰好有要求列值唯一性約束。 通過(guò) SID 號(hào),查看視圖 V$SESSION 就可以確定用戶信息。復(fù)制代碼 代碼如下:
SQL> select machine from v$session where sid in (118,137); MACHINE ---------------------------------------------------------------- NUODE\LN NUODE\LN SQL>
聲明: 本文由我的SEOUC技術(shù)文章主頁(yè)發(fā)布于:2023-05-23 ,文章Oracle 數(shù)據(jù)庫(kù)針對(duì)表主鍵列并發(fā)導(dǎo)致行級(jí)鎖簡(jiǎn)單演主要講述演示,主鍵,Oracle 數(shù)據(jù)庫(kù)針對(duì)表主鍵列并發(fā)導(dǎo)致行網(wǎng)站建設(shè)源碼以及服務(wù)器配置搭建相關(guān)技術(shù)文章。轉(zhuǎn)載請(qǐng)保留鏈接: http://www.bifwcx.com/article/web_5943.html
為你推薦與Oracle 數(shù)據(jù)庫(kù)針對(duì)表主鍵列并發(fā)導(dǎo)致行級(jí)鎖簡(jiǎn)單演相關(guān)的文章
-
通王TWCMS 2.0.3網(wǎng)站模板程序下載
(126)人喜歡 2024-01-15 -
Windows官方原版在哪里下載
(175)人喜歡 2024-01-15 -
WordPress網(wǎng)站模板發(fā)帖標(biāo)題顏色設(shè)置
(131)人喜歡 2024-01-07 -
修改discuz論壇帖子標(biāo)題80字符的長(zhǎng)度限制
(249)人喜歡 2024-01-07 -
wordpress程序調(diào)用不帶超鏈接的Tag標(biāo)簽
(234)人喜歡 2024-01-05 -
網(wǎng)站在不同時(shí)期需調(diào)整內(nèi)容更新的方向
(112)人喜歡 2023-08-12