熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Oracle >> 正文

如何分析SQL語句

2013-11-13 16:16:33  來源: Oracle 

  很多時候我們不太清楚自己寫的SQL語句好還是不好往往數據量一大程序運行變慢其實在SQL/PLUS裡可以很清晰的分析出SQL語句的執行計劃它可以提醒我們來創建索引或改變SQL語句的寫法
  
    先在sys用戶下運行@/ORACLE_HOME/sqlplus/admin/plustrcesql
  
  內容
  set echo on
  drop role plustrace;
  create role plustrace;
  grant select on v_$sesstat to plustrace;
  grant select on v_$statname to plustrace;
  grant select on v_$session to plustrace;
  grant plustrace to dba with admin option;
  set echo off
  
  產生plustrace角色然後在sys用戶下把此角色賦予一般用戶&username
  
  SQL> grant plustrace to &username;
  
    然後找到/ORACLE_HOME/rdbms/admin/utlxplansql然後在當前用戶SQL>下運行它創建一個plan_table用來存儲分析SQL語句的結果
  
   create table PLAN_TABLE (
   statement_id  varchar()
   timestamp    date
   remarks     varchar()
   operation    varchar()
   options     varchar()
   object_node   varchar()
   object_owner  varchar()
   object_name   varchar()
   object_instance numeric
   object_type   varchar()
   optimizer    varchar()
   search_columns number
   id       numeric
   parent_id    numeric
   position    numeric
   cost      numeric
   cardinality   numeric
   bytes      numeric
   other_tag    varchar()
   partition_start varchar()
   partition_stop varchar()
   partition_id  numeric
   other      long
   distribution  varchar());
  
    在SQL/PLUS的窗口運行以下命令
  
  
   set time on; (說明打開時間顯示)
   set autotrace on; (說明打開自動分析統計並顯示SQL語句的運行結果)
   set autotrace traceonly; (說明打開自動分析統計不顯示SQL語句的運行結果)
  
    接下來你就運行測試SQL語句看到其分析統計結果了一般來講我們的SQL語句應該避免對大表的全表掃描
  
    關閉以上功能在SQL/PLUS的窗口運行以下命令
  
   set time off; (說明關閉時間顯示)
   set autotrace off; (說明關閉自動分析統計)
From:http://tw.wingwit.com/Article/program/Oracle/201311/18072.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.