1. 程式人生 > 其它 >使用kill命令終止使用者會話以及top命令檢視cpu高問題

使用kill命令終止使用者會話以及top命令檢視cpu高問題

某些時候使用SP_CLOSE_SESSION(會話號)會終止不掉使用者的會話,V7.1.5.68-Build(2016.04.06-67270trunc)以後的版本可支援在Linux作業系統上直接kill使用者的會話執行緒,在緊急情況下可以使用這種方法。 注意開啟使用者執行緒標記(UTHR_FLAG=1)時不能使用。 1. v$sessions中增加了thrd_id,代表了使用者會話執行緒的ID,可查詢要終止會話對應的會話執行緒ID; 2. 在Linux作業系統中使用kill thrd_id殺掉使用者會話。 使用者會話執行緒對應的名稱為dm_sql_thd,可以v$threads檢視中查詢到。 另外也可以通過top -H -p 服務程序ID 命令檢視dmserver中執行緒的執行情況。 1、檢視資料庫程序id ps -ef|grep dms 2、資料庫程序id是xxx,通過top命令檢視CPU使用率高的pid top Hp xxx 可以看到cpu使用率高的pid是yyy 3、通過pid檢視資料庫中對應的會話 select SESS_ID, USER_NAME , SQL_TEXT , TRX_ID , THRD_ID , CREATE_TIME, CLNT_IP from v$sessions WHERE "V$SESSIONS".THRD_ID IN (5638); 4、可以看到會話id為zzzzzz 5、CPU使用率高的原因是zzzzzz會話的“select * from SYS.DBA_OBJECTS CONNECT BY level<10000”語句,然後對這個語句進行優化,如果想立即降低CPU使用率,在確認不影響資料的情況下可以殺死這個會話到達降低CPU使用率的目的。