Oracle SQL調優系列之AWR報告簡介

      網友投稿 951 2025-04-01

      文章目錄

      一、AWE報告生成步驟

      1.1 工具選擇

      1.2 自動創建快照

      1.3 手工創建快照

      1.4 生成AWR報告

      二、AWR報告分析

      2.1 AWR之DB Time

      2.2 AWR之load_profile

      2.3 AWR之efficiency percentages

      2.4 AWR之top 10 events

      2.5 AWR之SQL Statistics

      一、AWE報告生成步驟

      對于SQL調優,局部SQL,我們可以直接使用執行計劃等直接調優,而對于整個系統來說?這時候就可以用oracle系統自帶的報告對系統進行整體分析了,oracle提供好幾種性能分析的報告,比如AWR、ASH、ADDM等等

      這篇博客主要介紹AWR

      AWR全稱Automatic Workload Repository,自動負載信息庫,是Oracle 10g版本后推出的一種性能收集和分析工具,提供了一個時間段內整個系統的報表數據。通過AWR報告,可以分析指定的時間段內數據庫系統的性能。

      整體分析調優工具

      AWR:關注數據庫的整體性能的報告;

      ASH:數據庫中的等待事件與哪些SQL具體對應的報告;

      ADDM:oracle給出的一些建議

      AWRDD:Oracle針對不同時段的性能對比報告

      AWRSQRPT:oracle獲取統計信息與執行計劃

      不同場景對應工具

      局部分析調優工具:

      explain plan for

      set autotrace on

      statistics_level=all

      直接通過sql_id獲取

      10046 trace

      awrrpt.sql

      整體性能工具要點

      AWR關注點:load profile、efficiency percentages、top 5 time events、SQL Statistics、segment_statistics

      ASH關注點:等待事件與sql完美結合

      ADDM:各種建議與對應SQL

      AWRDD:不同時期 load profile的比較、不同時期等待事件的比較、不同時期TOP SQL的比較

      AWRSQRPT:獲取與關注點(統計信息與執行計劃)

      select output from table (dbms_workload_repository.awr_report_html(v_dbid,v_instance_number,v_min_snap_id,v_max_snap_id));

      1

      相關查詢試圖:

      v$session (當前正在發生)

      v$session_wait(當前正在等待)

      v$session_wait_history (會話最近的10次等待事件)

      v$active_session_history (內存中的ASH采集信息,理論為1小時)

      wrh$_active_session_history (寫入AWR庫中的ASH信息,理論為1小時以上)

      dba_hist_active_sess_history (根據wrh$_active_session_history生成的視圖)

      1.1 工具選擇

      對于Oracle數據庫可以使用sqlplus或者plsql developer客戶端軟件

      sqlplus 使用

      可以使用sqlplus工具登錄

      進入數據庫

      sqlplus / as sysdba

      1

      查看用戶

      Oracle SQL調優系列之AWR報告簡介

      show parameter db_name

      1

      用登錄之后才可以使用

      plsql developer使用

      plsql developer也可以使用,登錄之后,選擇文件(File)->新建(New)->命令窗口(Command Window)

      1.2 自動創建快照

      開始壓測后執行

      exec DBMS_WORKLOAD_REPOSITORY.CREATE_SNAPSHOT ();

      1

      可以通過dba_hist_wr_control查看當前的配置情況,當前awr為每1小時做一次數據快照,保留時間為8天。

      select * from dba_hist_wr_control;

      1

      修改配置,每隔30分鐘收集一次,保存1天

      execute dbms_workload_repository.modify_snapshot_settings(interval=>30,retention=>14000);

      1

      關閉AWR自動收集

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

      1

      注:10g默認是自動開啟awr信息收集的,會對系統有一定的影響(很小);如果要關閉awr信息收集,只需設置interval參數為0即可。但interval設0后,AWR報告無法生成。

      1.3 手工創建快照

      除了自動創建快照,也可以手工創建快照

      select dbms_workload_repository.create_snapshot() from dual;

      1

      1.4 生成AWR報告

      在sqlplus或者plsql使用命令,${ORACLE_HOME}是Oracle的安裝路徑

      @/${ORACLE_HOME}/.../RDBMS/ADMIN/awrrpt.sql

      1

      例如我的命令為:

      @D:/oracle/product/11.1.0/db_1/RDBMS/ADMIN/awrrpt.sql

      1

      sqlplus登錄的可以使用

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

      1

      @?/rdbms/admin/awrrpt; 本實例AWR包括:

      @?/rdbms/admin/awrrpti; RAC中選擇實例號

      @?/rdbms/admin/awrddrpt; AWR 比對報告

      @?/RDBMS/admin/awrgrpt; RAC全局AWR報告

      執行命令之后,會提示你輸入一些參數

      (1) Enter value of report_type

      意思是生成報告的格式有兩種,html和txt,這里選擇html

      (2) Enter value of num_days

      收集幾天的報告信息,數字,可以輸入1

      (3) Enter value of begin_snap

      輸入開始快照id,要根據日志打印的快照id范圍來填

      例如我實驗時候,日志打印的快照id范圍為:6727 ~6745

      Listing the last day's Completed Snapshots INST_NAME DB_NAME SNAP_ID SNAPDAT LV ------------ ------------ -------- ------------------ -- orcl ORCL 6727 17 4月 2019 00:00 1 orcl ORCL 6728 17 4月 2019 01:00 1 orcl ORCL 6729 17 4月 2019 02:00 1 orcl ORCL 6730 17 4月 2019 03:00 1 orcl ORCL 6731 17 4月 2019 04:00 1 orcl ORCL 6732 17 4月 2019 05:00 1 orcl ORCL 6733 17 4月 2019 06:00 1 orcl ORCL 6734 17 4月 2019 07:00 1 orcl ORCL 6735 17 4月 2019 08:00 1 orcl ORCL 6736 17 4月 2019 09:00 1 orcl ORCL 6737 17 4月 2019 10:00 1 orcl ORCL 6738 17 4月 2019 11:00 1 orcl ORCL 6739 17 4月 2019 12:00 1 orcl ORCL 6740 17 4月 2019 13:00 1 orcl ORCL 6741 17 4月 2019 14:00 1 orcl ORCL 6742 17 4月 2019 14:13 1 orcl ORCL 6743 17 4月 2019 14:15 1 orcl OANET 6744 17 4月 2019 14:16 1 orcl OANET 6745 17 4月 2019 14:40 1

      1

      2

      3

      4

      5

      6

      7

      8

      9

      10

      11

      12

      13

      14

      15

      16

      17

      18

      19

      20

      21

      22

      23

      24

      25

      所以我隨意填寫:6743

      (4) Enter value of end_snap

      輸入結束快照id,要根據日志打印的快照id范圍來填,所以我隨意填寫:6745

      SQL> @D:/oracle/product/11.1.0/db_1/RDBMS/ADMIN/awrrpt.sql Current Instance ~~~~~~~~~~~~~~~~ DBID DB_NAME INST_ INST_NAME ---------- ------------ ----- ------------ 4279242421 ORCL 1 orcl rpt_options --------- 0 Specify the Report Type ~~~~~~~~~~~~~~~~~~~~~~~ Would you like an HTML report, or a plain text report? Enter 'html' for an HTML report, or 'text' for plain text Defaults to 'html' Type Specified: html Cannot SET TRIMSPOOL Cannot SET UNDERLINE Instances in this Workload Repository schema ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ DBBID INSTT DBB_NAME INSTT_NAME HOST ------------ ----- ------------ ------------ ------------ * 4279242421 1 ORCL ORCL zwdb Using 4279242421 for database Id Using 1 for instance number dbid --------- 4279242421 inst_num --------- 1 inst_num --------- 1 dbid --------- 4279242421 max_snap_time --------- 17/04/2019 Specify the number of days of snapshots to choose from ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Entering the number of days (n) will result in the most recent (n) days of snapshots being listed. Pressing without specifying a number lists all completed snapshots. Listing the last day's Completed Snapshots INST_NAME DB_NAME SNAP_ID SNAPDAT LV ------------ ------------ -------- ------------------ -- orcl ORCL 6727 17 4月 2019 00:00 1 orcl ORCL 6728 17 4月 2019 01:00 1 orcl ORCL 6729 17 4月 2019 02:00 1 orcl ORCL 6730 17 4月 2019 03:00 1 orcl ORCL 6731 17 4月 2019 04:00 1 orcl ORCL 6732 17 4月 2019 05:00 1 orcl ORCL 6733 17 4月 2019 06:00 1 orcl ORCL 6734 17 4月 2019 07:00 1 orcl ORCL 6735 17 4月 2019 08:00 1 orcl ORCL 6736 17 4月 2019 09:00 1 orcl ORCL 6737 17 4月 2019 10:00 1 orcl ORCL 6738 17 4月 2019 11:00 1 orcl ORCL 6739 17 4月 2019 12:00 1 orcl ORCL 6740 17 4月 2019 13:00 1 orcl ORCL 6741 17 4月 2019 14:00 1 orcl ORCL 6742 17 4月 2019 14:13 1 orcl ORCL 6743 17 4月 2019 14:15 1 orcl OANET 6744 17 4月 2019 14:16 1 orcl OANET 6745 17 4月 2019 14:40 1 dbid --------- 4279242421 inst_num --------- 1 max_snap_time --------- 17/04/2019 Specify the Begin and End Snapshot Ids ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Begin Snapshot Id specified: 6743 End Snapshot Id specified: 6745 bid --------- 6743 eid --------- 6745 inst_num --------- 1 dbid --------- 4279242421 bid --------- 6743 eid --------- 6745 Cannot SET TRIMSPOOL Cannot SET UNDERLINE Specify the Report Name ~~~~~~~~~~~~~~~~~~~~~~~ The default report file name is awrrpt_1_6743_6745.html. To use this name, press to continue, otherwise enter an alternative. Using the report name awr.html Started spooling to D:\Program Files\PLSQL Developer 8.0.3.1510\awr.html

      1

      2

      3

      4

      5

      6

      7

      8

      9

      10

      11

      12

      13

      14

      15

      16

      17

      18

      19

      20

      21

      22

      23

      24

      25

      26

      27

      28

      29

      30

      31

      32

      33

      34

      35

      36

      37

      38

      39

      40

      41

      42

      43

      44

      45

      46

      47

      48

      49

      50

      51

      52

      53

      54

      55

      56

      57

      58

      59

      60

      61

      62

      63

      64

      65

      66

      67

      68

      69

      70

      71

      72

      73

      74

      75

      76

      77

      78

      79

      80

      81

      82

      83

      84

      85

      86

      87

      88

      89

      90

      91

      92

      93

      94

      95

      96

      97

      98

      99

      100

      101

      102

      103

      104

      105

      106

      107

      108

      109

      110

      111

      112

      113

      114

      115

      116

      117

      118

      119

      120

      121

      122

      123

      124

      二、AWR報告分析

      2.1 AWR之DB Time

      DB Time主要用來判斷當前系統有沒有相關瓶頸,是否較為頻繁訪問系統導致等待時間很長?然后要怎么看?一般來說,Elapsed時間乘以CPU個數如果大于DB Time,就是正常的,系統壓力不大,反之就說明壓力較大,例子如圖,24.93*8很明顯大于0.49,所以說明系統壓力很小

      2.2 AWR之load_profile

      load_profile指標主要用來顯示當前系統的一些指示性能的總體參數,這里介紹一些Redo_size,用來顯示平均每秒的日志尺寸和平均每個事務的日志尺寸,有時候可以結合Transactions這個每秒事務數,分析當前事務的繁忙程度

      如圖,平均每秒的事務數Transactions非常小,說明系統壓力非常小,一般來說Transactions不超過200都是正常的,或者200左右都是正常的,超過1000就是非常繁忙了,再看看平均每秒的日志尺寸是4位數的,平均每個事務的日志尺寸是5位數的,說明了系統訪問不是很頻繁,而單個業務是比較復雜的,如果反過來,平均每秒日志尺寸比平均每秒事務日志尺寸大很多,說明系統訪問很頻繁,而業務比較簡單,不需要響應很久

      2.3 AWR之efficiency percentages

      efficiency percentages是一些命中率指標。Buffer Hint、Library Hint等表示SGA(System global area)的命中率;Soft Parse指標表示共享池的軟解析率,如果小于90%,就說明存在未綁定變量的情況

      2.4 AWR之top 10 events

      Top 10 Foreground Events by Total Wait Time,等待事件是衡量數據庫優化情況的重要指標,通過觀察Event和%DB time兩列就可以直觀看出當前數據庫的主要等待事件

      如圖可以看出系統面試的主要是CPU被占用太多了和鎖等待

      2.5 AWR之SQL Statistics

      SQL Statistics從幾個維度列舉了系統執行比較慢的SQL,可以點擊,然后拿SQL去調優,調優SQL可以用執行計劃看看

      對于AWR的性能指標還有很多,本博客是看了《收獲,不止SQL優化》一書的筆記,這里只簡單介紹一些比較重要的指標

      Oracle SQL

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:如何通過Excel中的快捷鍵合并和居中單元格?
      下一篇:請問excel 路徑在哪里設置出來?(請問Excel的擴展名是什么)
      相關文章
      亚洲人成电影福利在线播放| 亚洲一区精品中文字幕| 亚洲美女中文字幕| 亚洲成a人片在线观看无码| 国产亚洲自拍一区| 国产精品xxxx国产喷水亚洲国产精品无码久久一区 | 亚洲精品夜夜夜妓女网| 国产午夜亚洲不卡| 三上悠亚亚洲一区高清| 亚洲老妈激情一区二区三区| 亚洲成A人片777777| 久久九九亚洲精品| 亚洲成a人片77777kkkk| 亚洲爱情岛论坛永久| 久久久无码精品亚洲日韩按摩| 亚洲国产精品久久久久婷婷软件| 亚洲国产精品一区第二页 | 亚洲中文字幕一区精品自拍| 涩涩色中文综合亚洲| 亚洲欧美黑人猛交群| 亚洲av综合日韩| 亚洲AⅤ优女AV综合久久久| 亚洲裸男gv网站| 亚洲精品蜜桃久久久久久| 亚洲成色在线综合网站| 老色鬼久久亚洲AV综合| 亚洲熟妇av一区二区三区下载| 亚洲免费一级视频| 亚洲日韩国产一区二区三区在线 | 亚洲av无码专区在线观看下载| 亚洲国产成人AV网站| 亚洲欧洲中文日韩久久AV乱码| 久久久无码精品亚洲日韩软件 | 亚洲精品人成网线在线播放va| 亚洲av无码成人精品区一本二本| 亚洲Av无码乱码在线播放| 亚洲自偷自偷图片| 7777久久亚洲中文字幕蜜桃 | 亚洲国产区男人本色在线观看| 亚洲AV无码男人的天堂| 亚洲午夜AV无码专区在线播放|