网站首页 > 数据库 / 正文
作者:刘晓峰
原文链接:http://www.tdpub.cn/Blog/detail/id/1345.html
Oracle 锁的使用
1.问题:编译包,发现无法编译的情况,查询用户在执行锁命令
2.解决方式:编译包,无法编译的时候,可以采用以下命令查询谁加了共享锁(执行)或者排它锁(正在编译)
select * from dba_lock_internal d where d.lock_id1='APPS.XXXXX'
and d.mode_held <>'Null'
表上的锁也能用这个表查,但是有更快的方法,
select * from gv$lock lo ,dba_objects do where do.object_id=lo.id1
and do.object_name ='XXXX'
3.查询的lock_type:
TM是表上的锁,TX是行锁,TO是临时表锁,可以查询v$lock_type获取详细信息
oradebug 休眠、唤醒进程
1、问题背景:
测试环境有一个JDBC进程池,有20个进程并行执行SQL,此SQL非常缓慢,想要hang住进程,让我的test跑完再启用
2、模拟执行缓慢的进程
查询进程
SELECT p.pid--35
,p.spid--28095
FROM v$session s
,v$process p
WHERE s.paddr = p.addr
AND s.sid = userenv('sid') ;
一秒写一个
create table cux_oradebug(id number,creation_date date);
declare
begin
for i in 1..3600 loop
dbms_lock.sleep(1);
insert into cux_oradebug(id,creation_date)values(i,sysdate);
commit;
end loop;
end;
3.休眠
SQL> oradebug setospid 28095
Oracle pid: 35, Unix process pid: 28095, image: oracle@MyHost
SQL> oradebug suspend
查询果然停在了148秒
select max(id)from cux_oradebug;
4.唤醒
SQL> oradebug resume
继续查询,发现ID继续上升
select max(od) from cux_oradebug
Tags:oracle into 临时表
猜你喜欢
- 2024-11-26 Oracle游标批量提交,解决更新大批量数据耗尽内存的问题
- 2024-11-26 《战场兄弟》全事件攻略 一般事件合同事件红装及隐藏职业攻略
- 2024-11-26 服务器异常关机导致Oracle启动失败
- 2024-11-26 mysql中exists 和 in的用法你还真不知道
- 2024-11-26 ORACLE 临时解决Ora-4031问题