explain for 的簡單使用

moumouyu發表於2009-12-07

autotrace 貌似有點bug,推薦用explain for:

要使用EXPLAIN首先要執行相應的指令碼,建立出Explain_plan表。

  具體指令碼執行如下:

  $ORACLE_HOME/rdbms/admin/utlxplan.sql (UNIX) 該指令碼後會生成一個表這個程式會建立一個名為plan_table的表。

常規使用語法:


  explain PLAN [ SET STATEMENT_ID [=] < string literal > ] [ INTO < table_name > ]
  FOR < sql_statement >

  其中:

  STATEMENT_ID:是一個唯一的字串,把當前執行計劃與儲存在同一PLAN中的其它執行計劃區別開來。

  TABLE_NAME:是plan表名,它結構如前所示,你可以任意設定這個名稱。

  SQL_STATEMENT:是真正的SQL語句。 比如: SQL>explain plan set statement_id='T_TEST' for select * from t_test; SQL> Explained

  執行下面語句可以查詢到執行計劃


  SQL>SELECT A.OPERATION,OPTIONS,OBJECT_NAME,OBJECT_TYPE,ID,PARENT_ID
  2 FROM PLAN_TABLE a
  3 WHERE STATEMENT_ID='T_TEST'
  4 ORDER BY Id;

  也可以用這句話 select * from table(dbms_xplan.display); 可以把所有PLAN_TABLE裡的資料羅列出來。

[@more@]

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