检查两个查询的性能

时间:2014-08-12 09:50:20

标签: sql performance oracle plsql

你介意帮我查询哪个查询表现更好,哪个更适合在oracle数据库中使用?

第一次查询:

Select t2_c1,t1_c3,t1_c4,t3_c1

from t1,t2,t3

where   t1_c1 = t2_c1   and    t1_c2=t3_c2

安排:

ID  PID Operation   Name    Rows    Bytes   Cost    CPU Cost    IO Cost Temp space  IN-OUT  PQ Dist PStart  PStop
0       SELECT STATEMENT        22362   829K    82      82                    
1   0     HASH JOIN     22362   829K    82      82                    
2   1       TABLE ACCESS FULL   CUSTOMER    87  2349    2       2                     
3   1       TABLE ACCESS FULL   MASTER  22362   240K    79      79      

第二次查询:

select (select t2_c2 from t2 where t1_c1 = t2_c1),  t1_c3,  t1_c4,  t3_c1

from t1, t3

where t1_c2=t3_c2

安排:

ID  PID Operation   Name    Rows    Bytes   Cost    CPU Cost    IO Cost Temp space  IN-OUT  PQ Dist PStart  PStop
0       SELECT STATEMENT        22362   240K    79      79                    
1   0     TABLE ACCESS BY INDEX ROWID   CUSTOMER    1   27  2       2                     
2   1       INDEX RANGE SCAN    SYS.IDX_CUSTOMER_V_CUST 1       1       1                     
3   0     TABLE ACCESS FULL MASTER  22362   240K    79      79   

1 个答案:

答案 0 :(得分:1)

如果你想在桌子上返回少于4%的线路MASTER我推荐你第二个,但是如果你将返回桌子MASTER上的所有线路,那么第一个计划要好得多。

任何问题只是让我知道。

感谢。