我正在为 Oracle 中的性能而苦苦挣扎。情况是:子系统B有一个 dblink 到主 DB A。在系统B 上,查询在 15 秒后通过 dblink 完成,db plan 使用适当的索引。
如果现在相同的查询应该填充存储过程中的一个表,Oracle 将使用另一个具有完整扫描的计划。无论我尝试什么(提示),我都无法摆脱这些完整的扫描。那太糟了。
我能做什么?
Oracle Query Optimizer 会尝试 2000 种不同的可能性,并在正常情况下选择最好的一种。但如果您认为它选择了错误的计划,您可能会怀疑以下情况:
1- 不推荐使用属于查询表的直方图。
2- 由于您的查询错误,您的索引无法使用。
3- 您可以使用索引提示来强制使用索引。
4- 您可以使用 SQL Advisor 或运行 TKProf 进行性能分析,并确定出现问题或导致性能不佳的原因。检查网络、磁盘 I/O 值等。
如果您分享您的查询,我们可以为您提供更多信息。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句