oracle脚本刷错了怎么办,Oracle故障处理中常用的脚本
如果发现CPU使用率过高,多半是低效的语句导致的,如何找到这些语句,是我们首要解决的问题:
在linux下,通过top工具获取到CPU消耗较大的Oracle进程IDtop - 16:57:27 up 74 days, 6:50, 5 users, load average: 0.00, 0.00, 0.00
Tasks: 380 total, 1 running, 378 sleeping, 1 stopped, 0 zombie
Cpu(s): 0.1%us, 0.1%sy, 0.0%ni, 99.8%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 16335900k total, 15861788k used, 474112k free, 349740k buffers
Swap: 16778232k total, 93208k used, 16685024k free, 13761144k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 10604 oracle 20 0 6736m 18m 16m S 0.3 0.1 0:02.28 oracle 10612 oracle 20 0 6736m 19m 17m S 0.3 0.1 0:01.47 oracle
然后通过以下语句获取相应的语句,这里的&pid就是上面top获得进程ID号10604SELECT /*+ORDERED*/
sql_text
from v$sqltext l
where (l.hash_value, l.address) in
(select decode(sql_hash_value, 0, prev_hash_value, sql_hash_value),
decode(sql_hash_value, 0, prev_sql_addr, sql_address)
from v$session s
where s.paddr =
(select addr from v$process p where p.spid = '&pid'))
order by piece asc;
通过以下脚本获取执行语句的会话和系列号,目的是为跟踪该会话中的详细信息select sid, serial#, machine
from v$session s
where s.paddr = (select addr from v$process p where p.spid = '&pid');
通过dbms_system包开启跟踪功能:exec dbms_system.set_sql_trace_in_session(sid,serial#,true);
总结
以上是生活随笔为你收集整理的oracle脚本刷错了怎么办,Oracle故障处理中常用的脚本的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: 为什么农村做自媒体的那么多 当然还是因为
- 下一篇: c语言计算时间的编程,C语言实现时间戳转