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...