行锁,是锁住具体某一个行或者几行,其他的数据是可以访问的
如果添加where条件,只会锁行,这个和索引没有关系,都是锁行(oracle测试是这样)
update ESTATE_DJ_AJXX t set ywh='3' where id='1'
更新,这是表锁,这个表都不能访问,很危险,没有条件就会锁整表
update ESTATE_DJ_AJXX t set ywh='3'
删除,这是表锁,添加where就锁行
delete from ESTATE_DJ_AJXX
查询,这是表锁,添加where就锁行
select * from ESTATE_DJ_AJXX for update
新增不添加锁,不会锁行和锁表,但是在一主键是,可以能会锁行
insert into ELASTIC_DATA_TRAN_LOG (id,DATASOURCE_ID,TRAN_FLAG) values('1','22','1')
大家在测试用oracle来试,工具用pl/sql,他是手动提交事务的
查找锁,并释放
查找锁
select t2.username,
t2.sid,
t2.serial#,
t3.object_name,
t2.OSUSER,
t2.MACHINE,
t2.PROGRAM,
t2.LOGON_TIME,
t2.COMMAND,
t2.LOCKWAIT,
t2.SADDR,
t2.PADDR,
t2.TADDR,
t2.SQL_ADDRESS,
t1.LOCKED_MODE
from v$locked_object t1, v$session t2, dba_objects t3
where t1.session_id = t2.sid
and t1.object_id = t3.object_id
order by t2.logon_time;
杀掉进程
alter system kill session 'sid,seial#';
select * from user_tab_comments; -- 查询本用户的表,视图等。
select * from user_col_comments; -- 查询本用户的表的列名和注释。
查看表占用多大内存
Select Segment_Name,Sum(bytes)/1024/1024 From User_Extents Group By Segment_Name order by Sum(bytes) desc