【发布时间】:2021-02-21 07:40:02
【问题描述】:
我有以下解释计划的以下 sn-p:
解释计划 1
-----------------------------------------------------------------------------------------------------------------------------------------------------------------
| Id | Operation | Name | E-Rows |E-Bytes|E-Temp | Cost (%CPU)| E-Time | OMem | 1Mem | Used-Mem |
-----------------------------------------------------------------------------------------------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | | | | 37M(100)| | | | |
...
|* 36 | INDEX UNIQUE SCAN | ZX_ACCOUNTS_U2 | 1 | 36 | | 0 (0)| | 1025K| 1025K| |
-----------------------------------------------------------------------------------------------------------------------------------------------------------------
解释计划 2
-----------------------------------------------------------------------------------------------------------------------------------------------------------------
| Id | Operation | Name | E-Rows |E-Bytes|E-Temp | Cost (%CPU)| E-Time | OMem | 1Mem | Used-Mem |
-----------------------------------------------------------------------------------------------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | | | | 879T(100)| | | | |
...
|* 39 | INDEX UNIQUE SCAN | ZX_ACCOUNTS_U2 | 1 | 36 | | 0 (0)| | 1025K| 1025K| |
-----------------------------------------------------------------------------------------------------------------------------------------------------------------
据我所知,Explain Plan 1 的总成本是 37 Millon。但我不确定解释计划 2 的成本。是 87.9 万吗?还是879万亿? 我试图找到一些关于后缀的文档,但找不到。
谢谢!
【问题讨论】:
-
是的,T 是万亿。请注意,您不一定只比较两个不同语句的计划之间的成本,除非它们碰巧来自同一个 10053 跟踪。无法保证一个成本为 879 万亿的计划实际运行所需的时间比一个成本为 3700 万的计划要长。
-
@JustinCave 谢谢。是的,它们与查询相同,我只是在尝试使用提示。谢谢!
-
但是,如果您要添加提示,它们就不是同一个查询。添加提示可以改变各种操作的成本计算方式,因此您不能只比较成本并得出提示是否会产生更好的计划的结论。
标签: sql oracle performance