【恩墨學院】為什麼用盡了辦法你的系統效能還是不見改善?

恩墨學院發表於2018-01-04


隨著業務資料的增長,以及新業務的推出,很多企業都面臨著系統效能的問題,並且日益凸顯。我們曾遇到很多這樣的使用者,似乎用盡了所有招數,但效能就是不見改善,問題到底出在哪裡?



我們先來看看這些使用者到底做了些什麼樣的嘗試:


1土豪式方案

有使用者表示,之前系統一直顯示記憶體不足,磁碟空間也經常不夠用,每次業務高峰就故障,後來申請增加了記憶體空間,並換了高效能大容量的儲存,一開始很管用,慢慢地老問題又出現了,這是怎麼了?

2妥協式方案

新上線了業務系統效能不佳,怎麼辦呢?我們來玩打游擊。把一些不重要的業務放在晚上執行,調整新業務的功能模組,或者暫時不做資料同步等。

3糾結式方案

效能不佳? 看看網路有沒有問題呢,有的話就改;是不是儲存的問題呢,有問題就換;運維人員有沒有問題呢,服務商也隨意招;但要誰來承擔責任呢,每次遇到嚴重的故障,幾大服務商便開始抓鬮。


坦白說,以上方案你是不是都做過了,或者做過其中的一些?


為什麼沒有起作用?以上方案都有什麼問題?


第一種,我只能說,有錢就是任性。但系統總是比我們更任性。


第二種,這種方式雖有作用,但總不能治本,並沒有解決任何問題只是逃避。


第三種,嗯,這樣的使用者特別多。有困難就提問是好的,敢於質疑一切,但唯獨少問了一個問題,是不是應用設計的問題呢?


這樣問並不是沒有道理的。


現實中,很多運維人員都很拼命地在保障系統高效執行,然而事後的SQL最佳化和救火已經不能滿足今天業務快速發展和高可用連續性的需求。因為根據我們統計,80%的系統效能問題來自應用SQL書寫不規範。而運維人員由於不瞭解系統的應用也看不到底層的邏輯,因此遇到問題也只能做些邊緣的嘗試。


縱觀各個企業,面臨業務的壓力,系統上線週期變短,測試時間被壓縮,很多應用程式碼中的SQL未經稽核就直接上線了,或者稽核方式低效,低質,流於形式,這導致了很多系統上線後,面臨各類效能問題,不僅給運維帶來很多壓力,也在一定程度上影響了使用者體驗。


只有從源頭上控制住應用系統的質量,才能避免上線後因低質量程式碼導致應用系統效能問題甚至是效能故障,保障業務的穩健。


什麼是SQL稽核?


SQL稽核是將 SQL 質量稽核和最佳化這項任務,從 DB 端提取到研發端,透過擅長 SQL 的開發 DBA 和開發團隊一起修正系統的 SQL,找出問題、修復問題,提升系統的健壯性和穩定性,從而保證整個系統的運維建設質量。


對於未上線系統,透過前期的SQL稽核管控,將80%的SQL問題消滅在萌生階段。

對於線上執行系統,發現和解決潛在的效能問題,可做到提前預防,防患於未然。


然而這些還不夠。。。


為了更好地服務廣大使用者,拯救拼了命也不能讓領導滿意的運維人員,雲和恩墨SQL 稽核產品 z3 不斷推出新版本,以更強大,更人性化,更快速便捷的方式提供服務。這也是DevOps時代,資料庫運維和開發融合的最佳方向和實踐。


首先我們來一覽各個版本的新特性。


oracle實戰


從v2.0版本開始,推出了以下新功能:


1、多資料庫支援:支援稽核Oracle庫的SQL、MySQL庫的SQL;


2、SQL智慧聚合:支援按照執行計劃、規則集智慧聚合問題SQL,大大減少了處理問題的工作量;


3、自動最佳化建議:增加問題整改建議,給使用者提供初步的問題最佳化方向;


4、12c 版本支援:完美支援 Oracle 12C 多租戶架構。



到v2.2版本,支援的功能將更強大,尤其是針對靜態SQL稽核。


1、支援直接稽核Mybatis的SQL檔案


使用者可以將Mybatis框架的SQL程式碼檔案上傳到MZ3裡進行分析,無需手工整理SQL,可大大提高SQL程式碼稽核效率。 


Oracle 實戰


2、支援匯出SQL分析報告


使用者可以將SQL分析結果下載匯出,方便與他人協作。


Oracle 實戰


SQL分析報告樣 : 

 Oracle 實戰




Mybatis與Hibernate的百度指數趨勢對 : 


Oracle 實戰


SQL稽核,讓DBA由系統的急救醫生轉身成為系統的保健醫生


1、DBA參與應用程式碼開發測試過程:給開發人員提供專業的資料庫開發及最佳化建議

2、最佳化前置:在應用程式碼上線前根據業務需求設計高效的SQL、索引

3、控制變更風險:預先評估應用開發中表結構變更、SQL變更對執行中應用的影響,確定合適的變更視窗,變更方案。


怎麼才能證明z3真的能幫到你呢?(大家都說好,你值得信賴)

z3SQL稽核軟體現在已經在很多企業做過嘗試,並取得較好的成果。


上海某金融系統的SQL問題很嚴重,在稽核的100808條SQL 語句中,共有87248條有問題


Oracle 實戰


透過z3稽核,我們找到了對應發生問題最多的操作使用者。


Oracle 實戰


除此,檢測還發現以下問題:


1F系統上存在大量無用的索引


Oracle 實戰


2F未繫結變數導致系統中存在大量相似SQL


Oracle 實戰


最終我們將這些問題SQL揪出來進行了重寫


Oracle 實戰


共最佳化了780條SQL,其中500多條是改寫了SQL,剩下了進行了合理的索引重設計。


完成最佳化後,系統效能有了明顯的提升


Oracle 實戰


雲和恩墨的z3 SQL 稽核軟體已經在江蘇移動,國家電網、江蘇電信等十數個大型企業進行過嘗試,並收到很好的效果,得到廣大使用者的一致認可。



雲和恩墨提供的SQL稽核服務總共包含以下方面:


1、SQL稽核工具部署:部署自動化工具、監控、跟蹤資料庫SQL效能

2、SQL開發標準制定:參與SQL程式碼開發規範得到制定,為開發人員提供科學可靠的SQL開發方法

3、SQL核心物件稽核:透過對業務的瞭解,針對SQL訪問的表和索引提供對應的設計、改進建議,確保需要訪問的表和索引能夠與開發人員的SQL程式碼及業務需求相配合,透過最佳執行計劃提升SQL效能

4、SQL程式碼稽核:透過開發程式碼與效能測試環節進行SQL捕獲並稽核,給出相應的SQL最佳化分析和改寫建議,並反饋指導開發環節。

5、SQL稽核評分:在SQL稽核與核心物件稽核完成後,將稽核結果匯入SQL稽核評分系統,對無索引、笛卡爾積、沒有使用繫結變數、查詢條件與列型別不匹配等各類低效的SQL問題,計算出系統SQL應用的健康分值。



文字已經不能表達我的激動之情,直接上圖來看最新版的功能清單

Oracle 實戰

天吶,說得我自己都心動了。好想趕緊找一本白皮書來一覽最新版本的功能。


恩墨學院隸屬於雲和恩墨(北京)資訊科技有限公司,致力於提供專業高水準的與大資料培訓服務,挖掘培養大資料與資料庫人才。恩墨學院提供包括個人實戰技能培訓、個人認證培訓、企業內訓在內的全方位大資料和資料庫技術培訓。ACE級別超強師資,配備專業實驗室,沉浸式學習與訓練,專業實驗室、配備專業助教指導訓練。能迅速融入專家圈子,業內資源豐富,迅速積累職場人脈。課程包括:班、Oracle 、Oracle OCP考試等。

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

相關文章