oracle执行计划中cost, card的含义

card是指计划中这一步所处理的行数。cost指cbo中这一步所耗费的资源,这个值是相对值。bytes指cbo中这一步所处理所有记录的字节数,是估算出来的一组值。 http://blog.itpub.net/post/385/45197



■ Cost The cost assigned to each step of the query plan by the CBO. The CBO works by
generating many different execution paths/plans for the same query and assigns a cost to
each and every one. The query plan with the lowest cost wins. In the full outer join example,
we can see the total cost for this query is 10.
■ Card Card is short for Cardinality. It is the estimated number of rows that will flow out
of a given query plan step. In the full outer join example, we can see the optimizer expects
there to be 327 rows in EMP and 4 rows in DEPT.
■ Bytes The size in bytes of the data the CBO expects each step of the plan to return.
This is dependent on the number of rows (Card) and the estimated width of the rows.

看来,

card是指计划中这一步所处理的行数。

cost指cbo中这一步所耗费的资源,这个值是相对值。

bytes指cbo中这一步所处理所有记录的字节数,是估算出来的一组值。

 

转自:http://blog.itpub.net/post/385/45197

 

用PL/SQL查看SQL语句执行计划

 

一般通过很多工具可以看PL/SQL的执行计划来分析语句性能。

这里介绍通过PL/SQL查看sql执行计划的几种方法:

方法一. Set AutoTrace on;
       然后当执行你的sql语句的时候,执行计划自动显示出来。
       不想看执行计划了,set autoTrace off;
方法二.执行语句: explain plan for [你的sql语句]
   比如: explain plan for select * from table1
   然后 执行:select * from table(DBMS_XPLAN.DISPLAY)就可以看到它的执行计划了。

方法三: 类似方法二,前一句sql不变,第二句改为下面sql同样可以显示执行计划(原理一样):
     select plan_table_output from table(dbms_xplan.display('plan_table',null,'serial'));

 

后面两种方法都是通过dbms_xplan包里的display表功能来获得最近的执行计划。

 

另外在sql*plus里用set timing on查看sql执行时间。

 

参考:

http://www.oracle-base.com/articles/8i/ExplainPlanUsage.php

http://www.oracle-base.com/articles/9i/DBMS_XPLAN.php

http://www.orafaq.com/node/1420

http://blog.csdn.net/e3002/archive/2007/09/10/1778821.aspx

转自:http://jake007.iteye.com/blog/290223

你可能感兴趣的:(oracle执行计划中cost, card的含义)