天天看點

使用者指南—診斷與優化—SQL審計與分析—簡介

功能優勢

  • 操作簡單:僅需在控制台上打開功能開關,即可實時進行SQL日志的審計與分析。
  • 性能無損:日志服務能夠實時拉取PolarDB-X執行個體下各資料庫的SQL審計日志檔案,對執行個體本身性能無影響。
  • 實時分析:依托日志服務,提供實時日志分析、開箱即用的報表中心和下鑽分析的功能,幫助您準确地了解資料庫執行狀況、性能和安全問題。
  • 實時告警:支援基于特定名額定制實時的監測與告警,當關鍵業務出現異常時可通過多種途徑通知告警。

注意事項

  • SQL審計日志預設儲存45天。
  • 日志服務會不定期更新SQL日志審計功能,專屬日志庫的索引與預設報表也會自動更新,請勿在日志服務控制台上随意删除或修改PolarDB-X的Project、Logstore、索引和儀表盤等配置。
  • PolarDB-XSQL審計與分析功能本身免費使用,但日志服務會對存儲空間、讀取流量、請求數量、資料加工、資料投遞等進行收費,詳情請參見 日志服務産品定價
  • SQL審計與分析功能預設關閉,您可以在PolarDB-X控制台上随時 開啟SQL審計與分析
  • 功能關閉後将不再向日志服務寫入資料,但您仍可以檢視曆史資料,這部分曆史資料會産生存儲和索引費用。您可以删除所有資料來 停用日志服務 ,日志停止服務後将不再計費。

應用場景

  • 問題SQL排查開啟SQL審計與分析功能後,您可以通過快速檢索SQL日志排查定位問題。例如您可以使用如下指令查詢響應時間超過1s的所有SQL:
__topic__:polardbx_sqlaudit and instance_id:pxc-*************** and response_time >= 1000 | select sql, response_time      
使用者指南—診斷與優化—SQL審計與分析—簡介
  • 如上圖所示,您可以在查詢結果檢視目标SQL的執行時間、執行該SQL的用戶端IP位址等資訊。
  • 高代價SQL模闆分析大多數應用中,SQL通常是基于若幹模闆動态生成的,隻是參數不同。例如,您可以使用如下指令擷取目标資料庫中的高代價SQL模闆資訊。
__topic__:polardbx_sqlaudit and instance_id:pxc-**************** | SELECT sql_code as "SQL模闆ID", round(total_time * 1.0 /sum(total_time) over() * 100, 2) as "總體耗時比例(%)" ,execute_times as "執行次數", round(avg_time) as "平均執行時間",round(avg_rows) as "平均影響行數", CASE WHEN length(sql) > 200 THEN  concat(substr(sql, 1, 200), '......') ELSE trim(lpad(sql, 200, ' ')) end as "樣例SQL" FROM  (SELECT sql_code, count(1) as execute_times, sum(response_time) as total_time, avg(response_time) as avg_time, avg(affect_rows) as avg_rows, arbitrary(sql) as sql FROM log GROUP BY sql_code) ORDER BY "總體耗時比例(%)" desc limit 10      
使用者指南—診斷與優化—SQL審計與分析—簡介
  • 如上圖所示,查詢結果鐘包括SQL模闆的ID、該模闆SQL占總體SQL的耗時比例、執行次數、平均執行時間、平均影響行數以及樣例 SQL等資訊。您可以基于該分析結果,找到應用中代價最高的SQL模闆,并對其進行優化。
  • 日志報表統計為了便于分析問題,PolarDB-X SQL審計與分析功能結合日志服務,提供了開箱即用的日志報表功能,幫助您實時診斷分析資料庫的執行狀況、性能和潛在安全問題等,詳情請參見 日志報表