加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长百科 > 正文

oracle – pl / sql dbms_scheduler挂起,怎样进一法式试?

发布时间:2021-01-10 09:52:06 所属栏目:站长百科 来源:网络整理
导读:我有一个由DBMS_SCHEDULER执行的PL / SQL块.它是在上周的某个时辰开始的,此刻应该已经完成??,但究竟并非云云.我正在实行确定题目,但必要一些关于怎样继承调试此题目的提议.这是究竟. 1)Oracle 11g 2)PL / SQL代码输出到日记表,我可以获得题目地址的一样平常地区,

我有一个由DBMS_SCHEDULER执行的PL / SQL块.它是在上周的某个时辰开始的,此刻应该已经完成??,但究竟并非云云.我正在实行确定题目,但必要一些关于怎样继承调试此题目的提议.这是究竟.

1)Oracle 11g

2)PL / SQL代码输出到日记表,我可以获得题目地址的一样平常地区,这就是我发明挂起的方法.我无法获得一个关于卡在那边的行号.我不知道怎么回事.

3)V $SESSION_LONGOPS表表现用户/架构仍在运行,但日期都是已往几天.从当时起它就没有摇动.

4)V $SESSION_LONGOPS中的OPNAME在“网络表索引统计”和“表扫描”之间分派一堆差异的表(第一个为8,第二个为8).他们看起来是一个普及的表格.对付每一行,SOFAR和TOTAL值相相互等. “Gather …”行全为零,而“Table Scan”行不为零但相称.

5)假如我对V $SESSION举办查询,我的事变是ACTIVE.

6)我正在处理赏罚的表上有一个锁,但我看不到我的架构中正在播放的其他会话.

7)CPU操作率很是低.

是否有也许更深入地查察正在执行的PL / SQL块?我可以在V $SQL中找到完备的SQL,它向我展示了传入的原始块.我但愿更深入地相识被编译的自界说进程(行号等).

关于锁,我可以看到分派给我的表的V $LOCKED_OBJECTS中的锁,是否有一个表将表现锁定的历程?我想找到死锁,假若有的话.

任何提议都很是感激,

MJ

办理要领

假如不构建本身的检测,或启用调试或说明,则无法找到当前正在执行的行号.这好像有点限定,但想象跟踪每个行号的机能影响.

大大都长时刻运行的功课都在守候SQL,而不是PL / SQL. (假如那不是真的,你尚有其他题目.)有许多要领可以跟踪SQL语句. V $SESSION_LONGOPS也许很有效,但凡是有更好的要领.假若有的话,最好的要领是行使Oracle Enterprise Manager.转到方针,然后转到Performance – >热点勾当,您将看到已往一小时的体系勾当和SQL语句的图表.

譬喻(来自OEM Concepts指南):

假如您没有安装OEM,可能没有会见权限,则尚有其他几种跟踪SQL的要领.起首,您要确定哪些是相干的SQL语句.
这将汇报你此刻正在运行什么,以及它运行了多长时刻:

select elapsed_time/1000000 seconds,gv$sql.*
from gv$sql
where users_executing > 0
order by 1 desc;

假如你很荣幸,它只必要很长时刻的一个SQL语句.假若有一系列小的SQL语句,您也许必要解除where users_executing> 0谓词并找到与您的应用措施相干的最昂贵的语句.

凡是,SQL语句会很慢或遏制,缘故起因首要有三个:

>守候资源.搜查从dba_resumable中选择*;大概您的查询占用了太多的姑且表空间,而且正在守候DBA添加更多.要么大概你已经启用了并行列队,它正在守候更多的并行会话. (我不确定这是否会呈此刻DBA_RESUMABLE中.)>守候锁定.搜查select * from gv $session个中final_blocking_session不为null;哪里的任何行都也许有题目.你一样平常不想要跟踪工具级此外锁定.更轻易找出阻止你的人而不是否决你的人.当一行或一个表被锁按时,你的session将守候事宜,而不是行或工具.请留意,只有当两个会话以差异的次序必要沟通的资源时才会发存亡锁假如产生这种环境会有错误信息.>守候SQL执行.这显然是最坚苦的题目.此刻该做什么没有简朴的清单.凡是我会天赋生一个勾当陈诉,表现打算以及每个步调必要多长时刻:从dual中选择dbms_sqltune.report_sql_monitor(sql_id =>’your sql id’,type =>’active’).该陈诉也合用于PL / SQL块,但它只会表现每个SQL占用的时刻.然后由你抉择怎样让它运行得更好.

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读