Oracle不使用最好的dbplan

Oracle不使用最好的dbplan

问题描述:

我在oracle中使用性能很困难。情况是:子系统B有一个DB链接到主数据库A。 on系统B查询在dblink上完成15秒后完成,db计划使用适当的索引。Oracle不使用最好的dbplan

如果相同的查询现在应该填充存储过程中的表,Oracle将使用另一个计划进行全面扫描。无论我尝试(提示),我无法摆脱这些完整的扫描。那太糟了。

我该怎么办?

+1

请提供您的代码和相关表格定义 – Rene

Oracle查询优化器会尝试2000种不同的可能性,并在正常情况下选择最佳的可能性。但是,如果您认为它选择错误的计划,您可能会怀疑以下情况:

1-属于查询表的您的直方图已弃用。

2-由于错误的查询,您的索引无法使用。

3-您可以使用索引提示来强制索引被使用。

4-您可以使用SQL Advisor或运行TKProf进行性能分析,并确定导致性能不佳的原因或错误。检查网络,磁盘I/O值等。

如果您分享您的查询,我们可以为您提供更多信息。

看起来我们在两种不同的情况下没有采用相同的查询。 第一种情况是通过dblink选择简单&第二种情况是“通过dblink插入选择”。

可以请您分享两个查询&这里的执行计划,因为您可能会将它们放在方便的位置。如果由于安全限制而无法过去查询,请过去执行计划。

-Abhi

多次尝试后,我可以创建与企业管理新的DB计划。现在它运行完美。