Oracle表鎖與行鎖

2021-10-09 22:51:11 字數 2010 閱讀 9436

1、登入資料所在的資料庫:用管理員賬戶登入

2、查詢是否存在鎖表的sql

3、進行表鎖sql:

共享方式的表級鎖( share)

lock

table

表[,表].

..inshare

mode

[nowait]

lock

table test_user in

share

mode

獨佔方式表級鎖( exclusive)

lock

table

表[,表].

...in exclusive mode

[nowait]

lock

table test_user in exclusive mode

4、檢視被鎖表的資訊:

查詢被鎖死的表:

select p.spid,

a.serial

#,c.object_name,

b.session_id,

b.oracle_username,

b.os_user_name

from v$process p, v$session a, v$locked_object b, all_objects c

where p.addr = a.paddr

and a.process = b.process

and c.object_id = b.object_id;

5、檢視當前資料庫正在使用的連線數

select

count(*

)from v$process

6、 檢視使用者當前占用的連線數

select a.osuser 使用者,

count(1

) 連線數 from v$session a group

by osuser order

by 連線數 desc

7、 檢視oracle當前配置的最大連線數

select

value

from v$parameter where name =

'processes'

8、把鎖給乾掉:

alter system kill

session

'sid列,serial#列'

將事務提交,由自動提交改為手動提交。當對某條資料進行操作時,在沒有提交事務之前,其他任何操作對該條資料,都是讀的以前的資料,防止髒讀

在對錶進行區間查詢或修改,由該操作獨享,其他操作均需要該操作執行完成。比較影響效能

Mysql行鎖與表鎖

用主鍵修改就是行瑣,或者用索引修改就是行瑣 update tab set name xx where id xx 行鎖 update tab set name xx where date 非主鍵或索引 xx 表鎖 插入的時候呢?插入都是行鎖 alert語句修改表結構,表鎖 表鎖和行鎖同時發生時,會等...

mysql 行鎖與表鎖

為日常整理,可能會有些重複.行鎖表表鎖 1 多個事務操作同一行資料時,後來的事務處於阻塞等待狀態。這樣可以避免了髒讀等資料一致性的問題。後來的事務可以操作其他行資料,解決了表鎖高併發效能低的問題。2 innodb的行鎖是針對索引加的鎖,不是針對記錄加的鎖。並且該索引不能失效,否則都會從行鎖公升級為表...

Innodb 行鎖與表鎖

行鎖與表鎖 innodb預設是行級別的鎖,當有明確指定的主鍵時候,是行級鎖。否則是表級別。for update的注意點 for update 僅適用於innodb,並且必須開啟事務,在begin與commit之間才生效。要測試for update的鎖表情況,可以利用mysql的command mod...