您好,登錄后才能下訂單哦!
下午開發人員反映,一個測試環境數據庫訪問非常慢,讓我幫忙分析原因。
正好剛裝了 SQLBooster ,通過它來分析,順便熟悉一下它的使用。
數據庫慢的話首先看等待事件,在 SQLBooster 主界面點開“事件排行”,界面顯示 TOP5 等待事件如下:
其中 row cache lock 排第一。
出現 session lock ,通過主界面的“阻塞樹”,可以查看 session 阻塞的情況。
不過這些 session 阻塞在動態變化,且并沒有執行 SQL 。
查看當前的 active session 如下, session 中可以靈活根據條件過濾:
對于 row cache lock 等待事件,我們要獲取 session 的 P1 參數。
用 P1 參數去 v$rowcache 中去查詢參數名稱,發現是“ dc_users ”。
和 dc_users 相關的,通常是由于用戶登錄引發。從審計視圖中,查看當天的登陸審計,發現錯誤碼 ORA-1017 占了絕大部分。
這個錯誤是用戶名密碼錯誤。
那么問題至此就清楚了,一臺客戶端用 jdbc 連接數據庫,但是由于配置文件中密碼錄錯了,反復重連。
而且配置了連接池,所以一瞬間有多個連接請求連接數據庫。進而引起數據庫響應緩慢。
在 sqlnet.ora 中將該客戶端的 IP 加入訪問黑名單,性能問題消失。然后聯系該客戶端的開發人員,修改 jdbc 配置文件。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。