隨筆-16  評論-84  文章-1  trackbacks-0
          通過存儲過程向數據庫一下子插入了一千萬(10000000)條記錄,結果等了很長時間,PL/SQL都沒有響應,我又瞎折騰了下,結果執行了好幾次,導致數據庫假死了,我只有刪除當前的會話,從網上找到相關的腳本代碼。


          1> 通過此語句查詢正在鎖定的SESSION_ID:

          1SELECT  SESSION_ID   FROM   V$LOCKED_OBJECT,USER_OBJECTS  WHERE   V$LOCKED_OBJECT.OBJECT_ID   =   USER_OBJECTS.OBJECT_ID


          2> 通過第一步查詢到的SESSION_ID查詢SERIAL#

          1SELECT SERIAL# FROM V$SESSION  WHERE SID='12'(此處'12'為上面查詢到的'SESSION_ID')


           3> 根據1,2步查詢到的SESSION_ID和SERIAL#執行

          1ALTER   SYSTEM   KILL   SESSION  '12,154'(12為SESSION_ID的值, 154為SERIAL#的值)

          4> 如果利用上面的命令殺死一個進程后,進程狀態被置為"killed",但是鎖定的資源很長時間沒有被釋放,那么還可以在os一級再殺死相應的進程(線程),首先執行下面的語句獲得當前進程(線程)的標示PID:

          1select spid, osuser, s.program 
          2from v$session s,v$process p
          3where s.paddr=p.addr and s.sid=12 (12是上面的SESSION_ID)

          然后在OS通過任務管理器找到對應的進程,在殺死這個進程(線程)

          posted on 2010-11-27 14:55 absolute 閱讀(863) 評論(0)  編輯  收藏 所屬分類: DataBase
          主站蜘蛛池模板: 航空| 城步| 莱西市| 江阴市| 德令哈市| 禹城市| 宜都市| 乐昌市| 越西县| 成武县| 宣化县| 龙里县| 城步| 文登市| 敖汉旗| 蒙自县| 赣州市| 介休市| 临汾市| 黑水县| 河曲县| 南宁市| 台中县| 东方市| 恩施市| 灌阳县| 江口县| 德令哈市| 元氏县| 洪泽县| 台前县| 宜章县| 韩城市| 湾仔区| 黔东| 修文县| 潢川县| 南汇区| 玉树县| 曲靖市| 盐城市|