ALTER SYSTEM KILL SESSION這麼沒力?(轉)

cccgw發表於2007-07-05

topas裡有3個oracle程式各佔25%CPU,一直高居不下,資料庫很慢。v$session裡發現這三個程式都是由同一個使用者用三個PL-SQL DEVELOPER連線的,都是ACTIVE的,沒有LOCK,當時他已經下班回家,並說沒做什麼操作。我就用ALTER SYSTEM把它們KILL掉,V$SESSION裡它們的狀態就變成'KILLED'了(按道理應該是由ACTIVE直接斷開了),然後OS 裡,topas的這三個程式佔用的資源還是一樣,沒有下降。只好在OS裡把這三個程式都KILL掉了,資料庫才正常。
這是怎麼回事?ALTER SYSTEM KILL SESSION這麼沒力?

答覆:

session就是會話啊,能不能這樣理解,session主要是和資料庫後臺來交流,而process主要是和使用者來交流。
這種情況我一般,用process檢視使用者的動作,找出相應sql,如果session是inactive或者沒有sql的話,確定不影響應用的情況下,直接在os級kill掉相應程式,如果用kill session,是需要一定時間來等pmon程式釋放資源的,還有一點是,你用kill session後,是不能再用此session 的sid找到os process了,所以kill session之前要先記住對應os process!

[@more@]

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/668365/viewspace-924124/,如需轉載,請註明出處,否則將追究法律責任。

相關文章