gpt4 book ai didi

oracle - Rows在解释计划中表示什么?

转载 作者:行者123 更新时间:2023-12-01 13:01:29 26 4
gpt4 key购买 nike

这是我的查询:

SELECT payload_data FROM staging_record WHERE record_source = 11;

这是执行计划:

------------------------------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
------------------------------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 9016 | 1875K| 292 (1)| 00:00:05 |
| 1 | TABLE ACCESS BY INDEX ROWID| STAGING_RECORD | 9016 | 1875K| 292 (1)| 00:00:05 |
|* 2 | INDEX RANGE SCAN | IX_RECORD_SOURCE | 9016 | | 15 (0)| 00:00:01 |
------------------------------------------------------------------------------------------------

Predicate Information (identified by operation id):
---------------------------------------------------

2 - access("RECORD_SOURCE"=11)

我做了一个计数,它用这个查询返回了 22619

SELECT COUNT(*) FROM staging_record WHERE record_source = 11;

当我的计数返回 22619 时,为什么 Rows 列显示 9016。这里的 Rows 指的是什么?

最佳答案

9016 的数字是优化器根据其拥有的统计数据估计的。如果表有 901,600 行并且 record_source 有 100 个不同的值,那么优化器可能会估计 record_source 的典型查询将返回 901,600/100 = 9016 行。实际数据的偏差可能会使它变得不准确(它永远不会完美)。如果数据严重偏斜,则可以使用直方图进一步细化统计数据。

关于oracle - Rows在解释计划中表示什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5712576/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com