Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/9.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_Sql Execution Plan - Fatal编程技术网

如何在Oracle解释计划中解释成本与字节?

如何在Oracle解释计划中解释成本与字节?,oracle,sql-execution-plan,Oracle,Sql Execution Plan,我有一个查询,我正在两个表之间进行连接,并且有许多过滤器。 我执行解释计划,明白了 cost:214, Bytes: 6154, Cardinality:67 为了降低成本,我在一个列上创建了一个基于函数的索引,该列以前也用作查询中的一个过滤器。我收集了表格统计数据,然后收集了索引统计数据。现在,我又开始解释计划了。这次我明白了 cost:214, Bytes: 122604, Cardinality:1202 我的问题是:成本和字节之间的关系是什么?为什么字节数和基数会增加?创建基于函数的

我有一个查询,我正在两个表之间进行连接,并且有许多过滤器。 我执行解释计划,明白了

cost:214, Bytes: 6154, Cardinality:67
为了降低成本,我在一个列上创建了一个基于函数的索引,该列以前也用作查询中的一个过滤器。我收集了表格统计数据,然后收集了索引统计数据。现在,我又开始解释计划了。这次我明白了

cost:214, Bytes: 122604, Cardinality:1202
我的问题是:成本和字节之间的关系是什么?为什么字节数和基数会增加?创建基于函数的索引不应该降低一点成本吗


有人能帮我理解这一点吗?

成本记录在SQL调优指南中(但不是字节数):

优化器成本模型考虑了 预测查询将使用

成本是表示估计成本的内部数字度量 计划的资源使用情况。成本是特定于数据库中的查询的 优化器环境。为了估计成本,优化器考虑 以下因素:

System resources, which includes estimated I/O, CPU, and memory

Estimated number of rows returned (cardinality)

Size of the initial data sets

Distribution of the data

Access structures
注:

成本是优化器用于比较的内部度量 同一查询的不同计划。您不能调整或更改成本

执行时间是成本的函数,但成本并不相等 直接到时间。例如,如果查询A的计划具有较低的 成本高于查询B的计划,则以下结果为 可能的:

A executes faster than B.

A executes slower than B.

A executes in the same amount of time as B.
因此,您无法将不同查询的成本与单个查询进行比较 另一个此外,您无法比较语义等价的成本 使用不同优化器模式的查询

别忘了解释计划只是估计的计划。
要检查实际计划的实际执行情况,请使用DBMS\u XPLAN.DISPLAY\u CURSOR或SQL trace。

要回答所有问题,请发布SQL查询并解释计划输出。