ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 生产库的一个奇怪现象,会话级临时表被锁死。求高手

生产库的一个奇怪现象,会话级临时表被锁死。求高手

原创 Linux操作系统 作者:lanbaibai 时间:2010-05-14 10:51:05 0 删除 编辑
在生产库发现一个奇怪的问题,我在一个存储过程中使用了一个会话级临时表,用户只要用自己的帐户登陆网站就会调用这个存储过程,
我发现这个会话级的临时表经常容易锁死,导致数据库不停的创建回滚段,然后导致用户无法登陆网站。(目前基本上每天这种情况都会发生一次)
我的操作系统是window2000,oracle是oracle 9.2。请教告诉什么原因。
我的存储过程大致如下:
PROCEDURE GetNewMsgList(P_Userid   NUMBER,
                          p_groupid  NUMBER,
                          p_allcount OUT NUMBER,
                          P_rc       OUT messagesrctype,
                          P_errno    OUT NUMBER,
                          P_errmsg   OUT VARCHAR2) IS
    sqlstr     VARCHAR2(4000);
    v_count    NUMBER;
  BEGIN
    sqlstr     := ' ';
   EXECUTE IMMEDIATE 'TRUNCATE TABLE JSY_NEW_MSG_TEMP';
   sqlstr := 'INSERT INTO JSY_NEW_MSG_TEMP (msgid,userid,topic,length,hits)
   SELECT msgid,userid,topic,length,hits FROM jsy_messages_info;
   EXECUTE IMMEDIATE sqlstr;
   COMMIT;
  SELECT COUNT(msgid)  INTO   p_allcount FROM   JSY_NEW_MSG_TEMP;
  OPEN P_rc FOR SELECT  * FROM   JSY_NEW_MSG_TEMP ;
  p_errno  := 0;
  p_errmsg := '操作成功';
  EXCEPTION
        WHEN OTHERS THEN
        p_errno  := -88;
                p_errmsg := SQLERRM;
        ROLLBACK;   
  END GetNewMsgList;

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/89921/viewspace-691527/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2008-05-12

  • 博文量
    16
  • 访问量
    40709