Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xslt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Oracle 解释计划中的行表示什么?_Oracle - Fatal编程技术网

Oracle 解释计划中的行表示什么?

Oracle 解释计划中的行表示什么?,oracle,Oracle,这是我的问题: SELECT payload_data FROM staging_record WHERE record_source = 11; 这是执行计划: ------------------------------------------------------------------------------------------------ | Id | Operation | Name | Rows | Bytes

这是我的问题:

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时,为什么行列显示为9016。这里的
行是指什么?

您的标记已过时。刷新统计数据(使用
DBMS\u stats
),您将获得更准确的值


是指在查询执行期间受影响的行数(根据标记信息,近似值)。

9016是优化器基于其统计信息的估计值。如果表有901600行,并且记录源有100个不同的值,那么优化器可能会估计记录源的典型查询将返回901600/100=9016行。实际数据的倾斜可能会使其不准确(它永远不会完美)。如果数据非常倾斜,则可以使用直方图进一步细化统计数据。

如何更新统计数据?这是通过分析表暂存记录计算统计数据实现的吗?因为这没有帮助:|@JavaRocky:查找一些
DBMS\u统计数据
sample。现在我已经在家了,没有任何完整的命令。虽然统计数据可能已经过时,但这里没有明确的证据表明这就是原因。根据Tony的回答,更大的问题是统计数据给出的实际数据的完整程度。@Dave Costa:oops,是的,忘记了
实际上是一个
基数
,我想补充一点,估计不正确的事实不一定是一个问题。如果查询使用的是一个性能良好的合理执行计划,那么它可能很好。如果估计值偏离了一个数量级或更大的数量级,那就更有可能成为一个问题。