慢日志分析
慢日志問題極大地影響數(shù)據(jù)庫(kù)的穩(wěn)定性,當(dāng)數(shù)據(jù)庫(kù)出現(xiàn)負(fù)載高、性能抖動(dòng)等問題時(shí),數(shù)據(jù)庫(kù)管理員或開發(fā)首先會(huì)查看是否有慢日志在執(zhí)行。數(shù)據(jù)庫(kù)自治服務(wù)DAS(Database Autonomy Service)支持慢日志分析功能,會(huì)統(tǒng)計(jì)并分析數(shù)據(jù)庫(kù)中執(zhí)行時(shí)間超過閾值的SQL語(yǔ)句,并提供相應(yīng)的治理方案,幫助您快速定位并解決數(shù)據(jù)庫(kù)性能問題,提高系統(tǒng)的穩(wěn)定性和可靠性。
前提條件
數(shù)據(jù)庫(kù)引擎為:
RDS MySQL、PolarDB MySQL版、MyBase MySQL、自建MySQL
RDS SQL Server、MyBase SQL Server
RDS PostgreSQL、PolarDB PostgreSQL版
云數(shù)據(jù)庫(kù) Tair(兼容 Redis)、MyBase Redis、自建Redis
PolarDB PostgreSQL版(兼容Oracle)
PolarDB-X 2.0
云數(shù)據(jù)庫(kù)MongoDB、自建MongoDB
重要RDS MySQL和RDS PostgreSQL基礎(chǔ)系列不支持慢日志分析功能。
全局慢日志趨勢(shì)僅支持中國(guó)內(nèi)地的RDS MySQL、MyBase MySQL和PolarDB MySQL版。
目標(biāo)數(shù)據(jù)庫(kù)實(shí)例已經(jīng)接入DAS,詳情請(qǐng)參見接入數(shù)據(jù)庫(kù)實(shí)例。
背景信息
慢日志由數(shù)據(jù)庫(kù)內(nèi)核輸出,不同數(shù)據(jù)庫(kù)引擎慢日志的配置參數(shù)及閾值不相同,具體的配置參數(shù)和閾值請(qǐng)參見對(duì)應(yīng)數(shù)據(jù)庫(kù)引擎的官方文檔。
查看單個(gè)實(shí)例的慢日志
本文以RDS MySQL數(shù)據(jù)庫(kù)為例介紹如何查看單個(gè)實(shí)例的慢日志。
登錄DAS控制臺(tái)。
在左側(cè)導(dǎo)航欄中,單擊實(shí)例監(jiān)控。
找到目標(biāo)實(shí)例,單擊實(shí)例ID,進(jìn)入目標(biāo)實(shí)例詳情頁(yè)。
在左側(cè)導(dǎo)航欄單擊請(qǐng)求分析 > 慢日志。
在慢日志分析頁(yè)簽,選擇需要查看的時(shí)間段,查看該時(shí)間段內(nèi)慢日志趨勢(shì)、慢日志統(tǒng)計(jì)和慢日志明細(xì)。
說明選擇時(shí)間范圍時(shí),查詢結(jié)束時(shí)間需晚于查詢開始時(shí)間,且查詢開始時(shí)間和查詢結(jié)束時(shí)間的間隔不能超過一天,您可以查詢最近一個(gè)月內(nèi)的慢日志信息。
您可以在慢日志趨勢(shì)圖中單擊某個(gè)時(shí)間點(diǎn),查看該時(shí)間點(diǎn)的慢日志統(tǒng)計(jì)和慢日志明細(xì)。
您可以單擊導(dǎo)出慢日志,將慢日志信息保存到本地查看。
在慢日志統(tǒng)計(jì)區(qū)域:
單擊目標(biāo)SQL模板操作列的樣本,查看該SQL的慢日志樣本 。
單擊目標(biāo)SQL模板操作列的優(yōu)化,在彈出的SQL診斷優(yōu)化對(duì)話框中,查看SQL診斷結(jié)果。
若您采納診斷建議,單擊頁(yè)面右上角的復(fù)制,并將優(yōu)化后的SQL粘貼到數(shù)據(jù)庫(kù)客戶端或DMS上執(zhí)行,若不采納診斷建議,可直接單擊取消結(jié)束診斷。
說明DAS會(huì)根據(jù)SQL的復(fù)雜程度、對(duì)應(yīng)表的數(shù)據(jù)量、數(shù)據(jù)庫(kù)負(fù)載等進(jìn)行SQL診斷,診斷建議的返回時(shí)間可能會(huì)超過20秒。完成診斷后,SQL診斷引擎會(huì)給出診斷結(jié)果、優(yōu)化建議和預(yù)期優(yōu)化收益,您可以根據(jù)診斷結(jié)果確認(rèn)是否采納建議。
您也可以單擊專家服務(wù),付費(fèi)購(gòu)買數(shù)據(jù)庫(kù)專家服務(wù),為您提供云數(shù)據(jù)庫(kù)產(chǎn)品本身能力范圍之外的專業(yè)的數(shù)據(jù)庫(kù)專家服務(wù),主要包括緊急救援、健康診斷、性能調(diào)優(yōu)、護(hù)航保障、數(shù)據(jù)遷移等。
單擊目標(biāo)SQL模板操作列的限流,在SQL限流頁(yè)面配置限流參數(shù),對(duì)目標(biāo)SQ進(jìn)行限流。詳細(xì)操作請(qǐng)參見SQL限流。
對(duì)于PolarDB MySQL版數(shù)據(jù)庫(kù)實(shí)例,單擊目標(biāo)SQL模板操作列的IMCI,查看列存索引(IMCI)的相關(guān)文檔。
說明當(dāng)PolarDB MySQL版數(shù)據(jù)庫(kù)實(shí)例未購(gòu)買列存索引節(jié)點(diǎn),且慢日志的最大執(zhí)行時(shí)間超過20秒,最大掃描行超過20萬行時(shí),顯示IMCI按鈕。
對(duì)于大數(shù)據(jù)量復(fù)雜查詢,推薦使用列存索引(IMCI)提升查詢性能。
在慢日志明細(xì)區(qū)域,單擊目標(biāo)SQL操作列的優(yōu)化和限流,也可對(duì)目標(biāo)SQL進(jìn)行SQL診斷優(yōu)化和SQL限流。
查看全局慢日志
若您有多個(gè)數(shù)據(jù)庫(kù)實(shí)例,您可以在全局慢日志趨勢(shì)頁(yè)面,查看所選數(shù)據(jù)庫(kù)引擎整體的慢日志趨勢(shì)以及TOP10實(shí)例的慢日志統(tǒng)計(jì)。
全局慢日志趨勢(shì)僅支持中國(guó)內(nèi)地的RDS MySQL、MyBase MySQL和PolarDB MySQL版。
登錄DAS控制臺(tái)。
在左側(cè)導(dǎo)航欄中,單擊請(qǐng)求分析 > 慢日志,查看全局慢日志趨勢(shì)和TOP 實(shí)例統(tǒng)計(jì)信息。
說明選擇時(shí)間范圍時(shí),查詢結(jié)束時(shí)間需晚于查詢開始時(shí)間,您可以查詢最近十四天內(nèi)的慢日志信息。
常見問題
Q:對(duì)于RDS MySQL和PolarDB MySQL版數(shù)據(jù)庫(kù)實(shí)例,為什么會(huì)出現(xiàn)慢日志記錄的SQL執(zhí)行完成時(shí)間與SQL語(yǔ)句的實(shí)際執(zhí)行時(shí)間不同?
A:通常情況下是執(zhí)行SQL語(yǔ)句修改了時(shí)區(qū)。慢日志記錄的SQL執(zhí)行時(shí)間的時(shí)區(qū),存在會(huì)話級(jí)別、數(shù)據(jù)庫(kù)級(jí)別和系統(tǒng)級(jí)別。慢日志時(shí)間設(shè)置邏輯為:當(dāng)數(shù)據(jù)庫(kù)存在時(shí)區(qū)時(shí),以數(shù)據(jù)庫(kù)的時(shí)區(qū)為準(zhǔn),否則以系統(tǒng)時(shí)區(qū)為準(zhǔn)。當(dāng)通過SQL語(yǔ)句修改了會(huì)話級(jí)別的時(shí)區(qū)時(shí),可能導(dǎo)致慢日志記錄的時(shí)區(qū)無法正常轉(zhuǎn)換。
相關(guān)文檔
您可以開啟DAS的自動(dòng)治理功能,以便在數(shù)據(jù)庫(kù)實(shí)例出現(xiàn)慢SQL時(shí)自動(dòng)進(jìn)行優(yōu)化。