awr 中單個SQL 效能檢視

dvlue發表於2011-03-02
1、進入資料庫

  CSXXDBS01:/> su - oraoms

  $

  $

  $ sqlplus "/as sysdba"

  2、執行awr指令碼

  SQL> @?/rdbms/admin/awrrpt.sql       (可以去兩個快照之間的awr報告)

  注:AWR預設保留資料庫7天的快照,每個小時產生一個快照

  調整AWR產生snapshot的頻率和保留策略,如將收集間隔時間改為30分鐘一次。並且保留5天時間(單位都是分鐘):

  SQL> exec dbms_workload_repository.modify_snapshot_settings(interval=>30, retention=>5*24*60);

  測試系統:

  1、手工先在資料庫中建立一個快照

  SQL> execute dbms_workload_repository.create_snapshot();

  PL/SQL procedure successfully completed.

  2、開啟生產系統,點選“單井彙總資訊”20多秒才出來頁面

  3、再生產一個快照

  SQL> execute dbms_workload_repository.create_snapshot();

  PL/SQL procedure successfully completed.

  3、去兩個快照之間的AWR報告

  SQL> @?/rdbms/admin/awrrpt.sql

  4、可以根據上面的awr報告中,找出花費時間比較長的單條sql語句的執行計劃

  如:sql id為c0yffdyps8uk9 花費了26秒時間

  SQL> @?/rdbms/admin/awrsqrpt.sql

  Specify the Begin and End Snapshot Ids

  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

  Enter value for begin_snap: 1679

  Begin Snapshot Id specified: 1679

  Enter value for end_snap: 1680

  End  Snapshot Id specified: 1680

  Specify the SQL Id

  ~~~~~~~~~~~~~~~~~~

  Enter value for sql_id:    (輸入c0yffdyps8uk9)

  這樣生產的sql可以很容易的看出該sql的執行計劃

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

相關文章