分类: Oracle
2011-08-19 10:49:38
1、查询被锁的语句,解锁
2、删除基本表数据时间过长分析
1、查询被锁的语句,解锁
查询锁
SELECT /*+ rule */ s.username,
decode(l.type,'TM','TABLE LOCK',
'TX','ROW LOCK',
NULL) LOCK_LEVEL,
o.owner,o.object_name,o.object_type,
s. s.terminal,s.machine,s.program,s.osuser
FROM v$session s,v$lock l,dba_objects o
WHERE l.sid = s.sid
AND l.id1 = o.object_id(+)
AND s.username is NOT NULL
清除锁(其中1900是SID,5768是serial#)
Alter system kill session '1900,5768'
A、owner, object_name需要开发部门确认,防止删除错误;
B、terminal,machine记住,有时由于程序设计上一些问题,解锁后,又有用户登录上锁住,需要去现场找到机器,并重启才行
C、sid,serial#用于解锁
D、program可以查出是什么程序导致锁,平时需记录这些程序
2、删除基本表数据时间过长分析
运行以下语句删除数据,先确认在此表用户下运行
delete from t_zj_apply_basic where substr(delecode,1,1) in ('8','9')
and delecode not in ('93801','93802')
and substr(delecode,1,3)>'898' and substr(delecode,1,3)<'998'
发现删除时间很久,我们查询下符合删除数据有多少条
select count(*) from t_zj_apply_basic where substr(delecode,1,1) in ('8','9')
and delecode not in ('93801','93802')
and substr(delecode,1,3)>'898' and substr(delecode,1,3)<'998'
查询要删除数据的基本表数据量
select count(*) from t_zj_apply_basic
在看看表t_zj_apply_basic是否与其他表相关联过于多
关联视图过多,并且视图嵌套复杂(多层嵌套),在删除数据时候,视图也要相应更改,造成时间消耗大
desc newzj.t_zj_apply_basic