數據庫負載過高的處理

1. 使用system用戶登錄oracle
2. 執行:select sid,event,p1,p1text from v$session_wait WHERE EVENT NOT LIKE 'SQL*Net%';
3. 查看結果中是否存在大量db file scattered read及db file sequential read等待.
 4. 如果存在,使用 SELECT sql_text FROM v$sqltext a WHERE a.hash_value = (SELECT sql_hash_value FROM v$session b WHERE b.SID = '48') ORDER BY piece ASC; (根據上面的查詢替換這裏的sid); 查看對應的sql語句內容,拷貝出來,以便進行sql語句優化.
5. 如果這個sql語句不是很關鍵的,或者必須要先降低oracle負載,需要kill掉這個語句的執行。
6. 先執行: select a.username, a.sid, a.serial#, a.lockwait,a.status, a.last_call_et,a.program from v$session a where a.sid=48(根據上面的查詢替換這裏的sid); 找出對應的serial#,然後執行: alter system kill session 'sid,serial#'; 如:alter system kill session '21,1';
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章