下午開發(fā)人員反映,一個(gè)測(cè)試環(huán)境數(shù)據(jù)庫(kù)訪問(wèn)非常慢,讓我?guī)兔Ψ治鲈颉?/p>目前創(chuàng)新互聯(lián)已為成百上千家的企業(yè)提供了網(wǎng)站建設(shè)、域名、雅安服務(wù)器托管、網(wǎng)站托管、服務(wù)器租用、企業(yè)網(wǎng)站設(shè)計(jì)、港閘網(wǎng)站維護(hù)等服務(wù),公司將堅(jiān)持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長(zhǎng),共同發(fā)展。
正好剛裝了 SQLBooster ,通過(guò)它來(lái)分析,順便熟悉一下它的使用。
數(shù)據(jù)庫(kù)慢的話首先看等待事件,在 SQLBooster 主界面點(diǎn)開“事件排行”,界面顯示 TOP5 等待事件如下:
其中 row cache lock 排第一。
出現(xiàn) session lock ,通過(guò)主界面的“阻塞樹”,可以查看 session 阻塞的情況。
不過(guò)這些 session 阻塞在動(dòng)態(tài)變化,且并沒有執(zhí)行 SQL 。
查看當(dāng)前的 active session 如下, session 中可以靈活根據(jù)條件過(guò)濾:
對(duì)于 row cache lock 等待事件,我們要獲取 session 的 P1 參數(shù)。
用 P1 參數(shù)去 v$rowcache 中去查詢參數(shù)名稱,發(fā)現(xiàn)是“ dc_users ”。
和 dc_users 相關(guān)的,通常是由于用戶登錄引發(fā)。從審計(jì)視圖中,查看當(dāng)天的登陸審計(jì),發(fā)現(xiàn)錯(cuò)誤碼 ORA-1017 占了絕大部分。
這個(gè)錯(cuò)誤是用戶名密碼錯(cuò)誤。
那么問(wèn)題至此就清楚了,一臺(tái)客戶端用 jdbc 連接數(shù)據(jù)庫(kù),但是由于配置文件中密碼錄錯(cuò)了,反復(fù)重連。
而且配置了連接池,所以一瞬間有多個(gè)連接請(qǐng)求連接數(shù)據(jù)庫(kù)。進(jìn)而引起數(shù)據(jù)庫(kù)響應(yīng)緩慢。
在 sqlnet.ora 中將該客戶端的 IP 加入訪問(wèn)黑名單,性能問(wèn)題消失。然后聯(lián)系該客戶端的開發(fā)人員,修改 jdbc 配置文件。