暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Oracle 使用Lonertime删除作业

askTom 2017-10-16
282

问题描述

嗨,

我们有一个存储过程来删除旧记录。我们正在删除5月表 (例如10个表) 中的记录。早些时候,该作业在2小时内删除了65k条记录。现在它在3-4小时内只删除了20k条记录。但是存储过程代码没有变化。

我们检查了存储过程中使用的所有delete语句的执行平面,所有看起来都不错,并且都在使用其索引。

删除语句非常简单。例如-从table_name中删除,其中column_name = variable_name;

没有阻塞会话会话,没有在AWR报告中捕获的并行执行。
执行计划没有变化。只有一个计划。
没有硬解析,也没有捕获并发顶部事件。

我们如何检查根本原因?我可以遵循哪些步骤来查找/解决我的问题?我的客户坐在我的头上,用锤子敲打。

请帮忙!。谢谢你的帮助!

问候,
Sathish G

专家解答

Trace是你的朋友

1) 执行dbms_monitor.session_trace_enable (等待 =>true,绑定 =>true)
2) 运行您的proc
3) 执行数据库管理 _ 监视器。会话 _ 跟踪 _ 禁用
4) 从V $ DIAG_INFO中选择值,其中name = '默认跟踪文件';

然后使用tkprof格式化跟踪,然后查找丢失时间的位置

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论