欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

oracle脚本刷错了怎么办,Oracle故障处理中常用的脚本

发布时间:2024/10/8 编程问答 53 豆豆
生活随笔 收集整理的这篇文章主要介绍了 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故障处理中常用的脚本的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。