日期:2014-05-17  浏览次数:20886 次

关于ORACLE执行计划问题
各位好,我最近才开始研究ORACLE。我想问一个执行计划的问题。
我对一个SQL进行了执行计划分析,如下图;

PLAN_TABLE_OUTPUT

Plan hash value: 1012204598
 
--------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
--------------------------------------------
| 0 | SELECT STATEMENT | | 1 | 29 | 5 (20)| 00:00:01 |
|* 1 | HASH JOIN | | 1 | 29 | 5 (20)| 00:00:01 |
| 2 | TABLE ACCESS FULL| STAFMAST | 1 | 7 | 2 (0)| 00:00:01 |
| 3 | TABLE ACCESS FULL| STAF_MAST | 1 | 22 | 2 (0)| 00:00:01 |
--------------------------------------------
 
Predicate Information (identified by operation id):
---------------------------------------------------
 
  1 - access("A"."SNAME"="B"."SNAME")
 
Note
-----
  - dynamic sampling used for this statement

请问,我将另一个与他相同功能的SQL相比较执行计划时,主要看上图中的哪几列值?是cost cpu吗?如果不是,在哪里看,看什么可以反应出来

------解决方案--------------------
对sql调优需要很多其他方面的知识
cost也不是越低越好...也有cost低得sql执行时间超长的
主要还是要针对你这个表去考虑的...如果是测试的话最好表有个几十万行比较好

调sql我认为还是看执行时间,cost可以做为参考...