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

Oracle 调整plsql过程的性能

askTom 2017-04-24
189

问题描述

嗨,汤姆,
我曾经在一次采访中被问到,一个运行平稳,正常的plsql过程在特定的一天突然变得缓慢,并且没有像以前那样运行。

我试着回答说

1.) 计算该过程的SQL查询中使用的所有表的统计信息,以便如果任何索引不能正常工作,它们将开始使用DBMS_STATS工作。
2.) 检查并查找引起问题的查询,并将其执行计划与preprod环境进行比较,如果它们不同,则调整引起问题的查询。


有没有更好的方法可以在plsql过程中找到问题,该过程之前运行正常,但是在美好的一天突然停止运行。

请提供您的帮助。

专家解答

我不知道你的场景的整个背景,但我不会 * 做1或2作为第一步,因为你可能会立即改变问题 (可能会让它变得更好,可能会让它变得更糟)

因此,第一步可能是:

a) 跟踪plsql的执行。请参阅 * 减速发生的地方 *

b) 关注 * 减慢 * 的潜在原因。(我假设它是一个SQL)
-获取当前计划
-我是否有关于SQL的历史信息,可以与以前的计划的eg AWR信息进行比较
-如果它们不同,那为什么?
-统计数据改变了吗
-在应该更改的时间 * 不 * 更改统计信息
-数据发生了巨大变化吗
-是否发生了结构性变化
-是否有更高级别的更改 (db patch,init.ora更改等)

但是请注意,所有这些并没有改变任何事情...我们 * 首先进行调查 *,并且只有在我们有坚实的证据的情况下才会发生变化

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

评论