前言
應(yīng)用系統(tǒng)承載著大量的業(yè)務(wù),隨之而來的是復(fù)雜的業(yè)務(wù)邏輯,在數(shù)據(jù)庫上的表現(xiàn)就是有著大量的不同種類的SQL語句。
SQL語句執(zhí)行的快慢又與阻塞等待有著密不可分的原因。
系統(tǒng)慢可能有很多種原因,硬件資源不足,語句不優(yōu)化,結(jié)構(gòu)設(shè)計(jì)不合理,缺少必要的運(yùn)維方式。所有的這些問題都可以在阻塞與等待中看出端倪,發(fā)現(xiàn)并解決問題。
今天這篇我們主要講述怎么樣發(fā)現(xiàn)并解決系統(tǒng)的阻塞和等待。
場景描述
您的系統(tǒng)是否有這樣的問題?
系統(tǒng)運(yùn)行緩慢,很多功能需要幾十秒才能呈現(xiàn)結(jié)果,用戶體驗(yàn)極差,領(lǐng)導(dǎo)們不斷施壓,作為系統(tǒng)的負(fù)責(zé)人,只知道系統(tǒng)慢又不知道慢在哪里?我們遲遲不能解決問題,領(lǐng)導(dǎo)已經(jīng)對我們怨聲載道了或者已經(jīng)慢習(xí)慣了,不再反饋了。
系統(tǒng)的功能運(yùn)行緩慢,在生產(chǎn)環(huán)境中語句運(yùn)行時(shí)間很長,但是在測試環(huán)境或者單獨(dú)拿出這條語句運(yùn)行的卻很快?這好像不科學(xué)呀?
我對數(shù)據(jù)有較多的了解,我能查出系統(tǒng)的等待,但是我不知道這些等待意味著什么,百度的答案五花八門解決不了我的問題。
我能找到等待,也能解決這部分等待,但只是通過一些腳本,不能全面了解現(xiàn)狀,只能東一錘子西一棒子的游擊戰(zhàn)。
我是專家問題我都能解決,但不能給領(lǐng)導(dǎo)一個(gè)直觀的展現(xiàn)。