oracle ash性能報告的使用方法


活動會話歷史報告
活動會話歷史
v$active_session_history視圖提供了在實例級別抽取會話活動信息.活動會話每分鍾會被抽樣一次且被存儲在sga中的循環緩沖區中.任何被連接到數據庫且正等待一個不屬於空閑等待事件的會話會被考慮是一個活動的會話.每個會話抽樣都是一組行數據且通過v$active_session_history視圖來返回每個被抽樣活動會話的行數據,返回最新被抽樣會話的第一行數據.因為活動會話抽樣是存儲在sga中的循環緩沖區中,系統活動越大的,活動時間越少會話的可以被存儲在循環緩沖區中.這意味着在這期間被抽樣的每個會話會出現在v$視圖中或者會話活動的時間會在v$視圖中被顯示,這完全依賴於數據庫活動情況.


作為awr快照的一部分,v$active_session_history視圖的內容也會被刷新到磁盤.因為當有繁忙的系統活動時v$視圖的內容會變得非常大,只有會一部分會話被抽樣並寫到磁盤.通過只捕獲活動的會話,那么只會生成正在被執行的會話的相關的一組數據而不是系統中所有會話的數據.使用ash能讓你對v$active_session_history視圖中的當前數據和dba_hist_active_sess_history視圖中的歷史數據進行檢查和性能分析,通常可能避免需要重放工作量來收集額外的性能跟蹤信息.ash包含了被捕獲的每一個sql語句的執行計划.可以使用這個信息來識別哪部分sql執行消耗了大部分的sql執行時間.ash報告展現了以下各種信息:
sql語句的sql標識符
sql執行計划標識符和用於執行sql語句的sql執行計划的哈希值
sql執行計划信息
對象數,文件數和塊數
等待事件標識符和參數
會話標識符和會話序列號
模塊和操作名
服務哈希標識符
用戶組標識符




使用活動會話歷史報告來執行以下性能分析:
短暫的性能問題通常只會持續幾分鍾.
通過各種維度或者象時間,會話,模塊,操作或sql_id的組合來進行有范圍或針對性的性能分析


短暫的性能問題是短暫的不在出現在addm分析中.addm試圖報告指出在分析周期內最對DB時間最有影響的性能問題.如果一個特定的問題持續非常短的時間那么它可的嚴重性可能會被平均化或者由於其它的性能問題使其影響最小化.然而這個問題可能在addm中不會出現,一個性能問題是否會被addm捕獲依賴於這個問題的持續時間與生成awr快照的時間間隔.


如果一個性能問題在兩個awr快照生成的時間間隔內持續了很長時間那么這個問題會被addm捕獲.例如如果awr快照時間被設置為一個小時,一個性能問題持續了30分鍾那么這個問題不會被認為是一個短暫的性能問題因為它在快照時間間隔內持續很長時間它會被addm捕獲.然而如果一個性能問題僅僅持續2分鍾可能會被認為是一個短暫的性能問題因為在快照時間間隔內它只持續了很短的時間所以這個問題不會出現在addm報告中.例如如果你被告知系統在上午10:00到上午10:10之間很慢,但addm分析的時間間隔是從上午10:00到上午11:00.那么在addm報告中不會顯示這個問題.


ASH報告分成多個部分.HTML報告包括能快速導航到不同部分的鏈接.




生成一個ash報告
ashrpt.sql腳本用來生成一個html或text格式的報告來顯示特定持續期間的ash信息.為了生成一個ash報告執行以下操作:
1.在sql提示符處輸入:
@$ORACLE_HOME/rdbms/admin/ashrpt.sql
2.指定你想生成的報告格式html或text:
Enter value for report_type: text
在這個例子中選擇生成text格式的ash報告
3.指定在ash報告開始時間:
Enter value for begin_time: -10
在這個例子中開始時間是當前時間之前的10分鍾
4.輸入這個報告持續的時間如果你想捕獲從指定的開始時間到當前時間的之間的ash信息:
Enter value for duration:
在這個例子中缺省是持續到當前的系統時間減去指定的開始時間的結果就是持續的時間.
5.輸入報告名或使用缺省的報告名:
Enter value for report_name: 
Using the report name ashrpt_1_0310_0131.txt
在這個例子中使用缺省的ash名ashrpt_1_0310_0131被生成.這個報告會從當前系統時間之前的10分鍾開始收集ash信息一直持續
到當前時間結束.


對一個指定的數據庫實例生成ash報告
ashrpti.sql腳本用來對一個指定的數據庫和實例生成一個html或text格式的報告來顯示特定持續期間的ash信息.這個報告在設置收集ash信息時間之前允許你指定數據庫和實例,為了生成一個ash報告執行以下操作:
1.在sql提示符處輸入:
@$ORACLE_HOME/rdbms/admin/ashrpti.sql
2.指定你想生成的報告格式html或text:
Enter value for report_type: html
在這個例子中選擇生成html格式的ash報告
3.列出了可用的數據庫ID和實例號:
Instances in this Workload Repository schema
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   DB Id    Inst Num DB Name      Instance     Host
----------- -------- ------------ ------------ ------------
 3349173529        1 cs           cs            cs1
 3349173529        1 test1        test1         test1
輸入數據庫標識符(dbid)和實例號(inst_num):
Enter value for dbid: 3349173529
Using 3349173529 for database id
Enter value for inst_num: 1


4.這一步僅適用於對一個活動的data guard物理備庫實例收集ash報告,如果不是這種情況,可以跳過這一步.為了對一個物理備庫生成一個ash報告,這個備庫實例必需是以只讀方式打開.這個ash報告包含了主數據庫存儲在磁盤中的ash信息和備數據庫內存中的ash信息.指定對於主數據庫或備數據庫是否使用數據抽樣來生成報告:
You are running ASH report on a Standby database.
To generate the report over data sampled on the Primary database, enter 'P'.
Defaults to 'S' - data sampled in the Standby database.
Enter value for stdbyflag:
Using Primary (P) or Standby (S): S
在這個例子中選擇了缺省值S備庫


5.指定在ash報告開始時間:
Enter value for begin_time: -10
在這個例子中開始時間是當前時間之前的10分鍾
6.輸入這個報告持續的時間如果你想捕獲從指定的開始時間到當前時間的之間的ash信息:
Enter value for duration:
在這個例子中缺省是持續到當前的系統時間減去指定的開始時間的結果就是持續的時間.
7.以秒為單位指定slot_width
Enter value for slot_width: 
在這個例子中使用缺省值
8.根據后續提示的說明解釋輸入報告以下目標信息的值:
target_session_id
target_sql_id
target_wait_class
target_service_hash
target_module_name
target_action_name
target_client_id
target_plsql_entry


9.輸入報告名或使用缺省的報告名:
Enter value for report_name: 
Using the report name ashrpt_1_0310_0131.txt
在這個例子中使用缺省的ash名ashrpt_1_0310_0131被生成.這個報告會對數據庫ID為3349173529的數據庫實例從當前系統時間之前的10分鍾開始收集ash信息一直持續到當前時間結束.




對oracle rac生成ash報告
ashrpti.sql腳本用來對oracle rac環境中的指定的數據庫和實例生成一個html或text格式的報告來顯示特定持續期間的ash信息只有被寫入磁盤的ash數據才會被用來生成ash報告.這個報告只會對在dba_hist_active_sess_history表中在過去10分鍾之內找到的ash進行抽樣.為了在oracle rac環境中生成ash報告執行以下操作:
1.在sql提示符處輸入:
@$ORACLE_HOME/rdbms/admin/ashrpti.sql
2.指定你想生成的報告格式html或text:
Enter value for report_type: html
在這個例子中選擇生成html格式的ash報告
3.列出了可用的數據庫ID和實例號:
Instances in this Workload Repository schema
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   DB Id    Inst Num DB Name      Instance     Host
----------- -------- ------------ ------------ ------------
 3349173529        1 cs           cs           cs1
 3349173529        1 test1        test1        test1
 3349173529        2 test2        test2        test2
 3349173529        3 test3        test3        test3
 3349173529        4 test4        test4        test4
輸入數據庫標識符(dbid)和實例號(inst_num):
Enter value for dbid: 3349173529
Using database id: 3349173529
Enter instance numbers. Enter 'ALL' for all instances in an Oracle
RAC cluster or explicitly specify list of instances (e.g., 1,2,3).
Defaults to current instance.
Enter value for inst_num: ALL
Using instance number(s): ALL


4.指定在ash報告開始時間:
Enter value for begin_time: -1:10
在這個例子中開始時間是當前時間之前的1小時10分鍾
5.輸入這個報告持續的時間如果你想捕獲從指定的開始時間到當前時間的之間的ash信息:
Enter value for duration: 10
在這個例子中持續的時間是10分鍾.
6.以秒為單位指定slot_width
Enter value for slot_width: 
在這個例子中使用缺省值
7.根據后續提示的說明解釋輸入報告以下目標信息的值:
target_session_id
target_sql_id
target_wait_class
target_service_hash
target_module_name
target_action_name
target_client_id
target_plsql_entry


8.輸入報告名或使用缺省的報告名:
Enter value for report_name: 
Using the report name ashrpt_1_0310_0131.txt
在這個例子中使用缺省的ash名ashrpt_1_0310_0131被生成.這個報告會對數據庫ID為3349173529的數據庫的所有實例從當前系統時間之前的1小時10分鍾開始收集ash信息一直持續到當前時間之前的1小時為止結束.




使用ash報告
在生成ash報告之后,可以重新檢索哪些標識為短暫性能問題的信息.ash報告的內容分成了以下幾個部分:
top events
load profile
top sql
top pl/sql
top java
top sessions
to objects/files/latches
activity over time




top evnets
頂級等待事件部分描述了被抽樣會話活動中由用戶,后台等產生的頂級等待事件,使用這些信息可以識別是哪些等待事件造成了短暫的性能問題.頂級等待事件包含以下部分:
頂級用戶事件
這部分信息顯示了在抽樣會話活動中占很高百分比的用戶進程等待事件.


頂級后以事件
這部分信息顯示了在抽樣會話活動中占很高百分比的后台進程等待事件.


頂級等待事件參數P1/P2/P3
這部分信息顯示了在抽樣會話活動中占很高百分比的等待事件的參數值它通過總的等待時間(%Event)百分比進行排序后被顯示.對於每一個等待事件p1,p2,p3的值與等待事件參數parameter 1,parameter 2,parameter 3這三個列相關聯.


load profile
load profile部分描述了在抽樣的會話活動中的負載分析.使用這部分信息可以識別造成短暫性能問題的服務,客戶或sql命令類型.負載概要部分包含以下部分信息:
top service/module
這部分信息顯示了在抽樣會話活動中占很高百分比的服務和模塊信息


top client ids
這部分信息顯示了在抽樣會話活動中占很高百分比的客戶端的id信息它是數據庫會話中應用程序的特定標識符


top sql command types
這部分信息顯示了在抽樣會話活動中占很高百分比的sql命令類型比如select或update


top phases of execution
這部分信息顯示了在抽樣會話活動中占很高百分比的執行步驟比如sql,pl/sql和java的編譯和執行操作.


top sql
頂級sql部分描述了抽樣會話活動中的頂級sql語句,使用這部分信息可以識別出造成短暫性能問題的高負載sql語句
頂級sql部分包含以下信息:
top sql with top events
top sql with top row sources
top sql using literals
top parsing module/action
complete list of sql text


top sql with top events
這部分信息顯示了在抽樣會話活動中占總的等待事件很高百分比的sql語句.


top sql with top row sources
這部分信息顯示了在抽樣會話活動中占很高百分比的sql語句和它們的詳細執行計划信息.通過這部分信息可以識別出哪部分的sql執行消耗了大量的sql執行時間


top sql using literals
這部分信息顯示了在抽樣會話活動中占很高百分比的使用literal值的sql語句.可以重新檢查這部分sql語句看是否能使用綁定變量來代替literal值.


top parsing module/action
這部分信息顯示了在抽樣會話活動中當執行解析sql語句時占很高百分比的模塊和操作


complete list of sql text
這部分信息顯示了頂級sql語句的完整的文本內容


top pl/sql
這部分信息顯示了在抽樣會話活動中占很高百分比的pl/sql過程.


top java
這部分信息顯示了在抽樣會話活動中占很高百分比的java程序


top sessions
這部分信息描述了會話正在等待的一個特定等待事件.使用這部分信息來識別在抽樣會話活動中占很高百分比的會話它們可能是造成短暫性能問題的原因.top sessions部分包含以下信息:


top sessions
這部分信息顯示了在抽樣會話活動中占很高百分比的等待會話


top blocking sessions
這部分信息顯示了在抽樣會話活動中占很高百分比的阻塞會話


top sessions running pqs
這部分信息顯示了哪些在抽樣會話活動中占很高百分比的正處於等待的並行查詢


top objects/files/latches
這部分信息顯示了通常最消耗數據庫資源的信息括以下部分:
top db objects
這部分信息顯示了在抽樣會話活動中占所有引用對象很高百分比的數據庫對象(比如表和索引)


top db files
這部分信息顯示了在抽樣會話活動中占訪問量很高百分比的數據庫文件


top latches
這部分信息顯示了在抽樣會話活動中占很高百分比的閂鎖信息
閂鎖是一種簡單低級別串行化機制用來保護sga中的共享數據結構.比如閂鎖保護當前訪問數據庫和緩沖區緩存中數據塊結構的用戶列表.當維護或查找這些結構時服務器或后台進程請求持有閂鎖的時間是非常短暫的.閂鎖的實現依賴於操作系統特別是一個進程等待獲取一個閂鎖多長時間.


activity over time
這一部分是ash報告信息最豐富的一部分.這部分信息對於長時間周期的ash報告來說因為在分析期間它提供了關於活動和工作負載概要深層次的詳細信息.activity over time會被分成10個時段.每個時段的大小基於分析所持續的時間.第一個和最后一個時段是奇怪.所有內部時段是相等的大小它們可以相互比較.例如,如果分析時間持續10分鍾那么所有的時段將會是每個一分鍾.然后如果分析時間持續9分30秒,那么外部的時段可能是每個15秒內部的時段可能每個1分鍾


特定時段中每個時段包含的信息如下:
列                       描述
slot time(持續時間)      時段的持續時間
solt count               在時段中抽樣會話的數量
event                    在時段中頂級的三個等待事件
event count              ash抽樣等待的等待事件的數量
%event                   ash抽樣等待的等待事件在整個分析期間所占的百分比


當比較內部時段時,通過識別異常的event count和slot count列執行一個傾斜分析.event count列的異常指示了在抽樣會話中等待的等待事件數量增加了.slot count列的異常指示活動的會自豪感增加了,因為ash數據只從活動會話中進持抽樣說明數據庫的
負載增加了.通常來說當活動會話抽樣的數理和與這些會話相關的等待事件增加時那么這個時段可能會造成短暫性能問題.


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM