SQL: 执行了一个redis 存储session过程,但是时间太长,想取消;查到了session_id是76,但是用Kill 76时,提示失败:

请教oracle kill session spid 后不释放锁的问题_百度知道
请教oracle kill session spid 后不释放锁的问题
在windows环境用orakill sid spid杀掉进程:select addr,晕死;&gt.paddr from v$session s) 最后在unix环境用kill -9 spid杀掉进程,我们无法通过v$session和v$process关联来获得spid(v$session的paddr和v$process的addr字段进行关联);;;test&#39,我得确定,采用 kill session 来终止SQL的执行。由于PADDR字段已经改变:select *
from v$session se,可是弹出一个错误提示框; alter system kill session &#39,报错的窗口照样弹出,但还是把v$session里面的PADDR这个字段变成一样的了,发现session的status居然是killed.sql_id = sq。SQL&3961。这时。这是再执行如下语句;test&#39,说执行错误,点“中断”也不起作用,通过PL&#47.sql_id发现 killed 的记录已经没有了,以及执行时间; 1
select s, pid,还需要在OS里kill进程来达到资源的真正释放; alter system kill session &#39。原来 kill session 并没有真正释放资源,依然提示成功的提示成功。kill session 虽然没释放资源.addr
from v$process p
where pid &lt,session还存在;SQL来执行.sql_id发现那两条SQL确实还在运行, spid
FROM v$process p where addr in (select p.sql_id = sq,8094&#39,这两次SQL,状态栏下显示执行完成,提示错误;4923;
and se, v$sqlarea sq where suser = 'System alteredSQL&gt,窗口上的“执行”按钮不可用;System alteredSQL&gt。select *
from v$session se。把该SQL拷贝到一新的窗口再次执行,是不是还在数据库里面执行, v$sqlarea sq where suser = '
and se。只能采用以下方式,26056'再次执行以上语句查看session今天在做统计数据,整了一个特复杂的SQL
为您推荐:
session的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁存储过程不能执行,但里面语句单独执行没问题-Oracle/高级技术-oracle-电脑编程网存储过程不能执行,但里面语句单独执行没问题-Oracle/高级技术作者:hebo2005 和相关&&SQL code
CREATE OR REPLACE PROCEDURE CHINA.sp_make_ap030_temp (
in_start_day
in_end_day
--生成者ID
)
IS
BEGIN
MERGE INTO tb_ap030 p
USING ....
MERGE INTO ...;
COMMIT;
EXCEPTION
WHEN NO_DATA_FOUND
WHEN OTHERS
-- Consider logging the error and then re-raise
RAISE;
END sp_make_ap030_
/
最近遇到一个怪问题,以上这个存储过程,每天会有个JOB调用执行,一直正常,运行了有一年多了从8号开始突然执行有问题,原来正常执行20秒就能结束的,结果几个小时都没执行完,造成狂慢里面就两个MERGE语句将这两个语句直接执行,没有问题,20秒左右就执行完了,但直接用存储过程就是不行尝试过重启,存储过程重编译,重命名,目标表重建,表索引去除等方法,还是情况依旧单独执行SQL正常,一用存储过程就出问题,百思不得其解唯一有点线索的,就是管理曾经执行过很长时间,最终报oralce
这两个错误------回答---------------其他回答(20分)---------
什么时候开始这样的?最近做过什么变动??应用层,后台...好像是数据超过长度造成的?看下插入的数据是否有异常...
------其他回答(15分)---------试试增加临时表空间数据文件的大小,可能是数据文件的HWM超过了空间大小!------其他回答(20分)---------
是否你的job 在调用时,存储过程的参数出现异常了?处理的数据量变的非常非常大?否则 你的语句在存储过程中和单独执行时,执行计划不同了? 这个也有可能是存储过程中是绑定变量,而在单独执行时是常量。关注你相关表的分析时间。总之,在job执行时,做个trace 看看应该就知道了。
------其他回答(5分)---------另外建立个JOB执行呢,能否执行?------其他回答(20分)---------
楼主和我最最近遇到的问题几乎一样,我也是有一个过程,过程里面有个dml操作,如果单独执行这个dml操作的话执行速度很快,但是放到过程里面就不行了,执行时间非常长。我暂时得出的原因是:我这个dml里有个函数要调用执行,可能每次执行那个函数的时侯,过程里的上下文的切换占用了大量时间,我现在还不确定,楼主如果有好想法,一定将答案贴上来。
------其他回答(20分)---------
一、先trace一下,alter session set SQL_TRACE=查看一下.trc文件,看看在执行job过程中都做了那些事情。二、如果问题定位不出来,再看看alert_orcl.log文件,看看数据最近出现什么错误,尝试定位问题原因。
相关资料:|||||||存储过程不能执行,但里面语句单独执行没问题-Oracle/高级技术来源网络,如有侵权请告知,即处理!编程Tags:                &                    

我要回帖

更多关于 session存储方式 的文章

 

随机推荐