數據庫系統的性能是確保整個應用系統高效運轉的關鍵因素,因此數據庫性能調優工作至關重要。KingbaseES通過將人工調優過程內化為數據庫內核,成功實現了自治調優。這種創新的調優方案為DBA提供了更高效且準確的性能調優途徑,同時也顯著降低了數據庫系統的維護成本和復雜性。
當今數據庫調優難題
如今,DBA需要具備專業的技能和知識,才能夠對數據庫進行充分優化。但數據庫性能優化涉及諸多因素,完全依賴DBA人工進行數據庫和系統統計信息收集,再進行多輪分析和定位,會耗費大量的時間和精力。如果數據庫擁有自動調優工具,那么工作效率將得到極大的提升。可以說,數據庫性能調優的種種難題本質上源于數據庫的易診斷性較低。為了解決這些問題,需要實現數據庫性能的自治。
內核驅動的自治調優方案
自治數據庫其實是從基礎級、管理級、預測級到自適應級逐步發展而來的,相當于汽車從手動擋到自動擋的變化過程。在基礎級階段,管理者往往要依靠能力和經驗來做調優;到管理級的時候,系統能夠去做相對完善的信息收集,管理者可以基于這些信息去做分析和決策;到預測級時,系統可以自己做模式識別與預測。
以遇到TOP SQL問題為例,系統可以根據問題預測原因:缺索引、需要做語句改寫,還是因為類型轉換出現無法使用索引等問題,并給出相應建議;最后是自適應級,相對于預測級的半自動升級到了自動檔的狀態,遇到性能問題系統可以自動進行優化。
KingbaseES在內核中建立了自治數據庫的框架,將感知、診斷、建議、優化的過程都模塊化,從而能夠靈活地基于建議任務對各個模塊進行填充,進而實現實例和SQL性能問題的自治調優。
實例調優
在診斷和建議方面,針對傳統數據庫內部的性能度量單位不同、內容不全面,無法準確診斷定位問題,KingbaseES以數據庫時間為單位,統一了度量衡,建立了基于數據庫時間的決策樹模型,可以自頂向下來定位性能問題的根本原因。針對時間模型,采集、存儲必需的性能分析數據,同時盡量避免對系統的性能影響。
以上述技術為基礎,KingbaseES在數據庫內部實現了大量的動態性能視圖,并提供KWR、 KWRDIFF、KSH等診斷報告。此外,對于內存不足、IO問題、鎖問題、缺少索引等常規問題,用戶直接調用KDDM即可給出建議。對于建議未能覆蓋的問題,需要用戶通過分析KWR、KSH等方式來進行人工分析。
SQL調優
在SQL調優方面,KingbaseES提供了建議、自適應邏輯優化規則、自適應基數估計三種方式。
基于采集到的問題SQL,調優建議器可以做進一步分析,最后基于規則, 給出優化建議,如索引建議、統計信息建議、改寫建議等。
邏輯優化是一種基于規則的優化方法,它按照一定的順序應用一系列優化規則來對輸入的邏輯執行計劃進行改進,使其變得更加高效。KingbaseES已經內置了一百多條常用的邏輯優化規則,能夠滿足大部分復雜業務的需求。
對于 SQL調優中常見的基數估計錯誤問題,KingbaseES可以利用執行結果自動修正,對于基數估計偏差較大的情況,經過一輪或多輪的迭代執行,可以給出更優的執行計劃。
目標:自治+AI
KingbaseES性能管理方向和目標就是自治,讓用戶的性能調優工作越來越簡單。目前,KingbaseES已經提供了預測級和自適應級的優化方法,并將持續豐富相關能力,包括更豐富的SQL建議、參數建議,PGA、SGA的自適應,執行計劃代價的自適應等。除此之外,KingbaseES開始將AI應用在趨勢預測、參數調優、基數估計等方面。
國產數據庫的時代已經到來。人大金倉在性能自治等方面進行了諸多探索,將推動產業發展進入全新階段,致力成為世界卓越的數據庫產品與服務提供商。未來,金倉數據庫將不斷突破關鍵技術的創新,為數據庫產業創新發展帶來更多的可能性。
供稿:產品研發中心
編輯:王堇
審核:日堯