elasticsearch入門系列">elasticsearch入門系列
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
查看用戶
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
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小時內刪除侵權內容。