zCloud使用技巧:如何使用效能下鑽功能分析SQL效能問題

資料和雲發表於2020-03-12

作為金融機構業務系統的資料承載——資料庫,在金融科技快速發展的過程中,隨著網際網路化、業務敏捷化等業務場景的轉變,資料庫效能也受到了極大的挑戰。為了加快資訊化建設的步伐,雲和恩墨助力於某全國性專業財產保險公司實現IT資訊化建設的發展,資料庫zCloud雲管理平臺幫助客戶加快實現自動化運維的程式。


針對zCloud的一些特定功能,讓我們跟隨著雲和恩墨駐場工程師小秦(化名)在實際操作中來詳細瞭解這款精心雕琢的產品。


zCloud雲管平臺可以透過監控來幫助我們快速的定位以及解決資料庫問題。


第一種是常規監控:透過監控資料庫執行狀態,包括錯誤告警、會話數、常規效能指標、空間使用率等。



第二種是實時效能監控:透過收集全方位的效能指標,在出現效能問題時,透過等待事件、SQL語句、執行計劃、以及相關聯的物件,幫助資料庫管理人員快速診斷複雜的效能問題,並提出效能最佳化建議。


下面透過幾個場景來演示zCloud在效能下鑽方面的表現:


1
場景一:如何分析TOP SQL


在效能頁面,選擇一個時間段,可以清晰的看到這個時間段影響效能的TOP SQL,可以幫助我們快速的定位該SQL執行時間。如果關心更詳細的資訊,可以點選SQL ID下鑽到SQL效能詳情頁面。



在SQL效能詳情頁面,可以看到完整的SQL文字、效能資料、執行計劃、效能分析、等待事件以及會話的基本資訊等。在新版本中支援SQL文字格式化。


如下圖所示SQL文字頁面展示執行該SQL的完整SQL語句。



在效能資料頁面,可以還可以瞭解該SQL執行的整體統計,內容包括今天的執行次數、最近活躍時間、執行時間等。



在執行計劃頁面可以看到該SQL的執行計劃,可以根據執行計劃來對SQL進行最佳化,並且在該頁面可以看到該SQL所涉及的物件資訊。



效能分析頁面,透過智慧分析引擎,zCloud可以對SQL提出建立索引的建議,我們可以根據實際環境來對該SQL進行判斷,是否可以根據該建議來進行最佳化。



2
場景二:如何分析事務鎖


事務鎖分析頁面展示鎖的資訊,後面會話阻塞分析是樹形結構,此處鎖資訊是橫向展示鎖的資訊。當資料庫會話較多時可以幫助我們準確的定位哪個會話產生了鎖。


3
場景三:如何分析臨時表空間異常增長


在業務同步一些資料使用insert等操作,可能會導致一些表的統計資訊不準確,在表連線時產生笛卡爾積導致臨時表空間擴充套件,如下圖所示,這時臨時表空間的使用量並不高,但是,使用量在23:13-23:43之間從3GB增加到96GB,透過temp表空間使用趨勢,我們可以定位到23:13-23:43時間段該臨時表空間異常擴充套件;接下來我們就可以透過實時效能來查詢該時間段的問題SQL。


 

4
場景四:如何分析特定時間段的效能問題


在實時效能頁面我們可以查詢最近48小時內的效能資料,接下來在實時活動會話中選取我們所要查詢的時間段。



如下圖所示,選定時間框後,下邊一欄會展現出該時間段的TOP SQL和TOP SESSION,我們可以按照Activity%的大小來檢視SQL(TOP SQL處的Activity%為不同的wait class在ASH中出現的次數與ASH中總的次數的比值),點選SQL_ID可以下鑽到SQL效能詳情頁面。



如下圖所示,在SQL效能詳情頁面的等待事件中發現了direct path write temp等待事件。



同時在執行計劃頁面發現merge join cartesian,並且發現該表的統計資訊中行數為0。




最終和業務溝通後,該表所在的儲存過程中每次都先truncate table,之後進行insert,導致統計資訊中記錄該錶行數為0,產生笛卡爾積連線。

面對各種突發狀況,雲和恩墨zCloud資料庫雲管平臺不斷吸取經驗,進行全面的最佳化和改進,彙集各行業更多客戶對安全管理、持續資料最佳化管理的典型需求,不斷增強平臺對內、對外的服務質量管理。在未來,雲和恩墨還將引領國產的資料庫雲管平臺走向一個新的高度。


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

相關文章