檢視sql對cpu 的開銷

楊奇龍發表於2010-06-11

      建立一個含有9列的表,插入記錄,執行EXPLAIN PLAN 得到執行計劃,獲得依次讀取第一列到第九 列的cpu開銷。

       注意:初始讀取資料的cpu開銷為35757,以後依次遞增20 。同時I/O開銷不變,這是因為所有的資料基本儲存在一個資料快裡全部查詢的物理讀取的次數是一樣的。

SQL> create table test (t1 number,t2 number,t3 number ,
  2  t4 number,t5 number ,t6 number,
  3  t7 number,t8 number ,t9 number);
表已建立。
SQL> insert into test values (1,2,3,4,5,6,7,8,9);
已建立 1 行。
SQL> explain plan set statement_id 't1' for select t1 from test;
已解釋。
SQL> explain plan set statement_id 't2' for select t2 from test;
已解釋。
SQL> explain plan set statement_id 't3' for select t3 from test;
已解釋。
SQL> explain plan set statement_id 't4' for select t4 from test;
已解釋。
SQL> explain plan set statement_id 't5' for select t5 from test;
已解釋。
SQL> explain plan set statement_id 't6' for select t6 from test;
已解釋。
SQL> explain plan set statement_id 't7' for select t7 from test;
已解釋。
SQL> explain plan set statement_id 't8' for select t8 from test;
已解釋。
SQL> explain plan set statement_id 't9' for select t9 from test;
已解釋。
SQL> select statement_id,cpu_cost as total_cpu_cost,
  2  cpu_cost-lag(cpu_cost) over (order by statement_id) as cpu_cost_1_coll,
  3  io_cost
  4  from plan_table
  5  where id=0
  6  order by statement_id;

STATEMENT_ID                   TOTAL_CPU_COST CPU_COST_1_COLL    IO_COST       
------------------------------ -------------- --------------- ----------       
t1                                       7271                          2       
t2                                       7291              20          2       
t3                                       7311              20          2       
t4                                       7331              20          2       
t5                                       7351              20          2       
t6                                       7371              20          2       
t7                                       7391              20          2       
t8                                       7411              20          2       
t9                                       7431              20          2       
已選擇9行。

得出 cpu_cost= column_postion*20 

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/22664653/viewspace-665069/,如需轉載,請註明出處,否則將追究法律責任。

相關文章