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

Oracle 同一代码在不同实例中的性能

ASKTOM 2020-11-05
249

问题描述

亲爱的团队,
您好!
我有一种情况,我们修改和调整的代码在开发实例中工作正常。(PL SQL包)
但是与它相同的代码,所有的提示,索引和查询需要很长时间才能在另一个实例上执行 (测试)。
这些操作涉及所有DML,例如各种表的插入,更新,删除。
代码在两者中是相同的。
然而,测试给出的性能比DEV慢得多。
有什么方法可以诊断这个吗?
我将无法在受限环境中共享确切的代码。
我所说的问题是主要问题。

问候
卡利亚纳


专家解答

实际上,有无数的原因可能会导致不同的表现。很可能是其中之一:

-不同的数据量 (例如,dev中的行很少,测试中的数百万)
-优化器差异 (统计数据的新鲜度,不存在SQL配置文件/基线,...)
-从单个用户开发实例到多用户测试实例的影响
-不同的硬件或配置设置

首先要做的是准确地找出哪些语句在测试中较慢。您可以通过使用SQL跟踪或PL/SQL分层探查器跟踪代码来执行此操作。我在此视频中概述了这些内容:



with all the hints

我强烈建议您删除所有提示,然后比较性能。dev和test之间数据差异的可能性很大。这意味着这些可能会在dev中给出最佳计划,但会阻止优化器选择更适合测试数据的计划。
文章转载自ASKTOM,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论