如何查看死锁时在执行的SQL语句
来源:互联网 发布:在线网络信托公司 编辑:程序博客网 时间:2024/05/21 22:58
脚本一,查出锁的关系,谁把谁锁主了
set serveroutput on
declare
mes varchar2(2000);
tmp_id1 number(22);
tmp_id2 number(22);
lk_sid number(22);
tmp_mac varchar2(64);
fl boolean;
begin
fl:=false;
for c1 in (select sid,serial#,machine,lockwait
from v$session
where lockwait is not null) loop
fl:=true;
mes:='sid:'||to_char(c1.sid)||','||c1.machine||'is be locked by sid ';
select id1,id2 into tmp_id1,tmp_id2
from v$lock where sid=c1.sid and kaddr=c1.lockwait;
for c2 in (select sid lk_sid from v$lock where sid!=c1.sid and id1=tmp_id1 and id2=tmp_id2 and block='1') loop
select machine into tmp_mac from v$session where sid=c2.lk_sid;
dbms_output.put_line(mes||to_char(c2.lk_sid)||' '||tmp_mac);
end loop;
end loop;
if not fl then
dbms_output.put_line('目前系统中没有互锁现象');
end if;
end;
/
第二,相应的sid最近执行的sql
set verify off
column a.username format a10
column c.sql_text format a64
accept sid prompt 'Please enter the sid '
select a.username, c.sql_text
from v$session a, v$sqltext c
where a.sid=&sid and
c.hash_value = a.sql_hash_value and
c.address = a.sql_address
order by c.PIECE
/
首先查看alert.log文件,查询ora-60错误,其中指明了详细日志文件的路径。
alert.log在background_dump_dest参数指定的目录下
deadlock日志文件在user_dump_dest参数指定的目录下
select username,default_tablespace from user_users;
select * from user_role_privs;
select * from user_sys_privs;
select * from user_tab_privs;
select * from user_tables;
select object_name,object_id from user_objects
where instr(object_name,'LOG')>0;
select object_name,created from user_objects where object_name=upper
('&table_name');
select * from user_sequences;
select view_name from user_views;
select member from v$logfile;
Select version FROM Product_component_version
Where SUBSTR(PRODUCT,1,6)='Oracle';
用系统管理员,查看当前数据库有几个用户连接:
SQL> select username,sid,serial# from v$session;
如果要停某个连接用
SQL> alter system kill session 'sid,serial#';
如果这命令不行,找它UNIX的进程数
SQL> select pro.spid from v$session ses,v$process pro where ses.sid=21
and ses.paddr=pro.addr;
说明:21是某个连接的sid数
然后用 kill 命令杀此进程号。
select column_name,comments from dict_columns where
table_name='USER_INDEXES';
select column_name,comments from dict_columns where upper(table_name)
='v$session';
如何查看最大会话数?
SELECT * FROM V$PARAMETER WHERE NAME LIKE 'proc%';
Select * from v$license;
SELECT * FROM USER_ERRORS;
SELECT * FROM V$INSTANCE;
select a.sid,spid,status,substr(a.program,1,40)
prog,a.terminal,osuser,value/60/100 value
from v$session a,v$process b,v$sesstat c
where c.statistic#=11 and c.sid=a.sid and a.paddr=b.addr order by
value desc;
select * from v$sqltext where address = 'C0000001E0B4A160';
select sql_text, piece, hash_value
from v$sqltext
where address = 'C0000001E0B4A160'
order by hash_value, piece;
select * from v$sqlarea where address = (select sql_address from
v$session where sid = :1);
- 如何查看死锁时在执行的SQL语句
- 查看死锁的SQL语句
- 如何查看django执行的sql语句及消耗时间
- Oracle中存储过程执行大的Sql语句时如何查看sql是否正确
- 查看当前oracle中正在执行的sql语句
- 查看当前oracle中正在执行的sql语句
- 查看数据库死锁SQL语句
- 如何取的SYBASE中正在执行的SQL语句
- SQL语句在数据库中是如何执行的
- mybatis如何在控制台打印执行的sql语句
- 如何知道脚本中正在执行的SQL语句
- 如何在sqlplus中查看oracle数据库sql语句执行计划,执行时间和统计信息
- ORACLE OEM简介(如何利用OEM查看oracle当前在执行哪些SQL语句)
- ORACLE OEM简介(如何利用OEM查看oracle当前在执行哪些SQL语句)
- 在性能测试时,如何观察服务器端Oracle在执行的Sql语句【监控】
- oracle 查看已执行的sql语句
- oracle 查看进程执行的sql语句
- magento 中查看执行的sql语句
- 经常用到的javaScript技术代码(经典)
- js实现的左右选择框
- Ubuntu 8.10不能使用scratchbox问题
- java 代理(proxy)模式
- Xerox Phaser 3124打印sapscript问题
- 如何查看死锁时在执行的SQL语句
- HP_UXadminII培训笔记(10)(HP_UX)
- J2ME中循环与String的优化
- 大数据量分页显示
- String和StringBuffer的一些用法
- 传智播客Servlet学习,Servlet类的装载机制
- 从flex的combobox组件思考OO
- DHC log 2009-1-20
- 又是乱码。