Oracle杀掉死锁进程
用Oracle Sql Developer操作表的时候,不知咋的把表锁住了。
结果那张表一插数据就死,连truncate都不行。
从网上七拼八凑了个方法,终于把进程杀了,表也就解锁了。
首先要用dba级别的用户操作,因为要察看很多系统表。用普通用户操作的话,会提示表或者View不存在。(为什么不提示权限不够?害我总以为是版本问题)
然后找锁表的sid(session id),SERIAL#,PADDR
SELECT * from V$SESSION where osuser='XXXXXX'; --osuser是登陆windows名
找spid
SELECT SPID from V$PROCESS WHERE ADDR='刚才查到的PADDR';
最后. 杀进程
(1).先杀ORACLE进程:
ALTER SYSTEM KILL SESSION '查出的SID,查出的SERIAL#';
(2).再杀操作系统进程:KILL -9 刚才查出的SPID或
ORAKILL 刚才查出的SID 刚才查出的SPID
提示找不到spid。。。不管了,去看看锁住的表。能插数据了,解决。
相关文档:
大家都知道,用PL/SQL连接Oracle,是需要安装Oracle客户端软件的。有没要想过不安装Oracle客户端直接连接Oracle呢?
其实我一直想这样做,因为这个客户端实在太让人讨厌了!!!不但会安装一个JDK,而且还会把自己放在环境变量的最前面,会造成不小的麻烦。
&n ......
select p.spid,
a.serial#,
c.object_name,
b.session_id,
b.oracle_username,
b.os_user_name
from v$proces ......
在Oracle8i或以上版本中,可以创建以下两种临时表:
1。会话特有的临时表
CREATE GLOBAL TEMPORARY <TABLE_NAME> (<column specification>)
ON COMMIT PRESERVE ROWS;
2。事务特有的临时表
CREATE GLOBAL TEMPORARY <TABLE_N ......
日常开发活动中,有时候需要对oracle执行计划进行监控,以此来调优程序和数据库方面的性能。
常用方法有以下几种:
一、通过PL/SQL Dev工具
1、直接File->New->Explain Plan Window,在窗口中执行sql可以查看计划结果。其中,Cost表示cpu的消耗,单位为n%,Cardinality表示执行的行数,等价Row ......