首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从oracle EXPLAIN PLAN中确定一个查询比其他查询更好

如何从oracle EXPLAIN PLAN中确定一个查询比其他查询更好
EN

Stack Overflow用户
提问于 2014-04-25 23:41:34
回答 1查看 1.3K关注 0票数 0

我正在优化一个oracle查询。我发现我的新查询的成本比原来的要低。我认为我的新查询可能比旧查询有更好的性能。但是很多人在网上说“成本栏不能用来比较执行计划”。所以我的问题是,如果不检查解释计划的成本,如何知道一个查询的性能比另一个查询的性能更好呢?还有别的办法吗?谢谢!

EN

回答 1

Stack Overflow用户

发布于 2014-04-25 23:54:38

查询计划是非常有用的动物。但是,通常情况下,它们不是确定两个查询中哪一个实际上更有效的有用方法。在极少数情况下,人类可以查看两个合理的查询计划并立即知道其中一个将比另一个更有效。如果可以,这通常意味着其中一个计划存在严重缺陷(即,您看到的是对十亿行表的表扫描,而不是用来获取您感兴趣的10行的索引访问)。

当涉及到比较两个不同的计划时,您需要关注执行统计数据。大多数情况下,测量实际的逻辑I/O是最简单的标准。您可以通过在SQL*Plus中运行set autotrace on或使用SQL Developer中的自动跟踪选项(使用F6而不是F5来运行查询)来实现此目的。您还可以测量已用时间,但这通常需要更多的精力来根据各个缓存(数据库、操作系统、SAN等)中块的比例来生成合理的基准测试。当查询运行时。无论缓存如何,执行过程中的CPU时间可能会更稳定一些。有时,您可能希望测量一些其他统计数据(例如,如果您正在考虑优化涉及数据库链接的查询,则需要测量通过网络发送的数据量)。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23297498

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档