技术交流

锁查询
日期:2022年10月13日

一、查看连接的IP

select sys_context('userenv','host') from dual;
SELECT UTL_INADDR.get_host_address('www.anysql.net') from dual  ----------------------依赖于DNS服务器
select sys_context('userenv','ip_address') from dual;  ------------查询当前机器的IP地址

二、锁查询

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;

SELECT p.spid, a.serial#, c.object_name, b.session_id, b.oracle_username, b.os_user_name,a.MACHINE  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;

三、杀会话

SELECT sid,SERIAL# ,process FROM V$SESSION   WHERE  sid=10275 ; 或 SELECT sid,SERIAL# ,process FROM V$SESSION   WHERE SQL_ID= 'gxat9gzgfh02c';  (查询出来多个)   
select sid,serial#,username ,osuser from v$session where (sql_hash_value,sql_address)=(select hash_value,address from v$sqlarea where sql_id='gxat9gzgfh02c');

掉这个进程  alter system kill session 'sid,serial#';   immediate;

查看pid,kill掉

select spid, osuser, s.program  from v$session s,v$process p where s.paddr=p.addr and s.sid=1458 ;
#kill 10422;或#kill -9 10422

四、查询资源消耗高的语句

根据top的pid
select s.sid,s.serial#,p.con_id from v$session s,v$process p where s.paddr=p.addr and p.spid='251082';   
查出sid定位SQL
select sql_text from v$sqltext a where a.hash_value=(select sql_hash_value from v$session b where b.sid='1465') order by piece;

上一篇:ORACLE ADG查询 下一篇:备份脚本