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

Oracle 如何在不真正在数据库中执行的情况下知道要检索的记录数量和查询成本

askTom 2018-02-28
121

问题描述

亲爱的团队,

我想知道,在通过SQLPLUS直接在数据库中执行查询之前,是否有可能知道获取的记录数量以及产生的成本。

我已经与explain计划实用程序,它返回记录和成本的数量,但这可以提供准确的结果,或者如果有任何不同的方法/方法和任何可用的软件包。

请简单举例说明。

非常感谢。
问候
贾根。

专家解答

问: 你跑一英里需要多长时间?

A: '\ _(ツ)_/''

问: 好的,那么您跑一英里的平均时间是多少?

A: 8分钟

问: 所以如果你现在就开始,需要8分钟,对吗?

这条路线都是上坡的,微风很大。

问: 那么9分钟?

我的膝盖受伤了

问: 10分钟?

让我们停止猜测,并对其进行时间!

如果你想知道某人在特定的路线和日期跑一英里需要多长时间,唯一确定的方法就是给跑步时间安排。当然,你可以看看他们过去的跑步,路线和条件,以获得合理的估计。但这是你能得到的最好的猜测。确切的时间取决于当天的条件。

运行查询也是如此。您可以对表中的内容以及它们与查询的关系进行广泛的分析。并得出此查询将返回的行数。

但是,在完成此操作并运行它之前,其他人会插入10,000行。让所有的分析变得毫无用处。

explain计划使用统计信息 (希望) 生成它将返回的行数的合理估计。但这可能是错误的,原因有很多:

https://asktom.oracle.com/Misc/when-explanation-doesn-sound-quite.html

因此,确定查询获取多少行的唯一方法是:

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

评论