一條報警資訊的快速處理和分析
下午的時候收到這麼一條報警。
如果通過AWR來定位很可能捕捉不到這個抖動,而且把AWR快照的收集頻度降低本身也不能完全解決問題,所以這個時候就需要藉助ASH了。
對於ASH生成報告而言,我對於裡面需要設定的時間格式深惡痛絕,所以在很早之前就做了簡單定製,手工輸入兩個時間戳,還可以靈活調整範圍,很快就定位到了一條語句。
可以看到在時間範圍內的SQL基本都是從Orabbix端觸發的,而這裡有一條語句引起了我的注意。
其它的語句都是查詢資料字典的資訊,而藍色部分標示的這條語句一看就是應用層面的。檢視執行計劃,馬上就明白了原委。
這條語句做了全表掃描,因為資料量巨大,所以執行效率低下,而且同時啟用了並行,所以相對來看執行效率還可以,但是由此可見系統層面的資源消耗會非常大。
所以問題又來了,為什麼全表掃描,啟用了並行,怎麼會有66個並行會話。看這個語句似乎也沒有什麼Hint的痕跡。
那麼這個問題的原因就更加容易定位了。
SQL> select degree,table_name from dba_tables where table_name='TEST_VIP_NEW' and owner='TEST’;
DEGREE TABLE_NAME
-------------------- ------------------------------
32 TEST_VIP_NEW
可以通過這個配置看出並行度為32,所以問題的原因就馬上可以定位出來了。
現在的問題是這個語句存在效能問題,一方面會導致大量的資源耗費,二來執行時間也相對比較長,為什麼這個大的表執行效率會如此差呢,問題的方向應該在於索引,排除了其它的因素,發現這個表的資料千萬級,存在幾個索引,但是唯獨這個語句where條件中的欄位不存在相關的索引,而這個問題可以進一步分析和檢視,其實就是根據rank=0,grade=0來得到結果集,從執行計劃可以看出這個結果集非常大,其實就算是得到了對應CN列值,本身處理起來也是一個很龐大的工程。所以這個語句從應用層面來看也是存在問題。而另外一個就是並行度,這個表的並行度有些太高,可以適當做一個調整,同時結合起來和開發同學做進一步的確認。我想這個問題在監控體系之內應該是不會報警了。
ZABBIX-監控系統:
------------------------------------
報警內容: Too many parallel sessions on xxxxx_xx機房_xxxxx
------------------------------------
報警級別: PROBLEM
------------------------------------
監控專案: parallel_session_cnt:66
------------------------------------
報警時間:2016.08.22-17:27:54
這個報警的意思是並行會話數達到了66個。已經遠超出了閾值。
如果通過AWR來定位很可能捕捉不到這個抖動,而且把AWR快照的收集頻度降低本身也不能完全解決問題,所以這個時候就需要藉助ASH了。
對於ASH生成報告而言,我對於裡面需要設定的時間格式深惡痛絕,所以在很早之前就做了簡單定製,手工輸入兩個時間戳,還可以靈活調整範圍,很快就定位到了一條語句。
可以看到在時間範圍內的SQL基本都是從Orabbix端觸發的,而這裡有一條語句引起了我的注意。
其它的語句都是查詢資料字典的資訊,而藍色部分標示的這條語句一看就是應用層面的。檢視執行計劃,馬上就明白了原委。
這條語句做了全表掃描,因為資料量巨大,所以執行效率低下,而且同時啟用了並行,所以相對來看執行效率還可以,但是由此可見系統層面的資源消耗會非常大。
所以問題又來了,為什麼全表掃描,啟用了並行,怎麼會有66個並行會話。看這個語句似乎也沒有什麼Hint的痕跡。
那麼這個問題的原因就更加容易定位了。
SQL> select degree,table_name from dba_tables where table_name='TEST_VIP_NEW' and owner='TEST’;
DEGREE TABLE_NAME
-------------------- ------------------------------
32 TEST_VIP_NEW
可以通過這個配置看出並行度為32,所以問題的原因就馬上可以定位出來了。
現在的問題是這個語句存在效能問題,一方面會導致大量的資源耗費,二來執行時間也相對比較長,為什麼這個大的表執行效率會如此差呢,問題的方向應該在於索引,排除了其它的因素,發現這個表的資料千萬級,存在幾個索引,但是唯獨這個語句where條件中的欄位不存在相關的索引,而這個問題可以進一步分析和檢視,其實就是根據rank=0,grade=0來得到結果集,從執行計劃可以看出這個結果集非常大,其實就算是得到了對應CN列值,本身處理起來也是一個很龐大的工程。所以這個語句從應用層面來看也是存在問題。而另外一個就是並行度,這個表的並行度有些太高,可以適當做一個調整,同時結合起來和開發同學做進一步的確認。我想這個問題在監控體系之內應該是不會報警了。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/23718752/viewspace-2123826/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- CSAPP =2= 資訊的表示和處理APP
- 多對一處理 和一對多處理的處理
- 第二章:資訊的表示和處理
- WEB安全漏洞掃描與處理(下)——安全報告分析和漏洞處理Web
- 資訊的表示和處理 及 CS:APP 15213 datalabAPP
- Kafka是如何處理Netflix每天2萬億條訊息的?Kafka
- Dart函式、類和運算子-處理資訊Dart函式
- 資料分析--資料預處理
- 一條個人資訊8毛錢 警方通報300萬條資訊洩露大案
- doxygen 宏定義/宏編譯/條件編譯/預處理/預編譯 不處理、忽略條件、分析所有條件、滿足所有條件的方法編譯
- CRM的資料分析和報表功能用處大嗎?
- DBeaver同時執行多條insert into報錯處理
- 【Python資料分析基礎】: 異常值檢測和處理Python
- java 如何簡單快速處理 json 中的資料JavaJSON
- java 如何簡單快速處理 xml 中的資料JavaXML
- mybatis+oracle 批次插入多條資料的處理方法MyBatisOracle
- 原始碼分析:Android訊息處理機制原始碼Android
- Python文字資料分析與處理Python
- springboot統一異常處理及返回資料的處理Spring Boot
- Spring處理@Configuration的分析Spring
- 印表機列印出現橫條紋怎麼處理 印表機出現一條一條的橫紋
- 道路千萬條,安全第一條——一次伺服器被入侵的處理經過伺服器
- Spring MVC 處理一個請求的流程分析SpringMVC
- 資料清洗和資料處理
- 如何對大資料進行分析和處理?_光點科技大資料
- 通訊訊號處理的一些基本常識
- 異常錯誤資訊處理
- 單機每秒最多可處理10億條資料!eBay開源資料處理框架Accelerator框架
- Python利用pandas處理資料與分析Python
- ViewGroup事件分發和處理原始碼分析View事件原始碼
- 優雅的處理Spring Boot異常資訊Spring Boot
- 資訊保安課程設計第一週任務(7條指令的分析)
- 自然語言處理功能的全鏈條式集合,NLPIR大資料語義智慧分析平臺自然語言處理大資料
- 深圳市恆訊科技分析:GPU伺服器處理效能和用例GPU伺服器
- 程式中的敏感資訊如何優雅的處理?
- 從資料提取到管理:合合資訊的智慧文件處理全方位解析【合合資訊智慧文件處理百寶箱】
- 處理VM的一種特殊方法和思路
- 前端如何處理後端一次性返回10萬條資料?前端後端
- Apache Beam,批處理和流式處理的融合!Apache