免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1493 | 回复: 4
打印 上一主题 下一主题

存储过程为什么会睡觉(sleeping)? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2003-06-05 17:27 |只看该作者 |倒序浏览
今日发现有一存储过程运行20小时左右后状态改变,onstat -g ses
状态如下:



  1. Informix Dynamic Server 2000 Version 9.21.FC4     -- On-Line -- Up 60 days 09:35:43 -- 3317760 Kbytes

  2. session                                      #RSAM    total      used      
  3. id       user     tty      pid      hostname threads  memory     memory   
  4. 95765    dbuser1  QQB12    -177643  qqb12    1        602112     598008   

  5. tid      name     rstcb            flags    curstk   status
  6. 562685   sqlexec  2925d3990        B-BPR--  8264     2925d3990sleeping(Forever)

  7. Memory pools    count 1
  8. name         class addr             totalsize  freesize   #allocfrag #freefrag
  9. 95765        V     2979ce040        602112     4104       844        9         

  10. name           free       used           name           free       used      
  11. overhead       0          3248           mtmisc         0          648      
  12. scb            0          144            opentable      0          60608     
  13. filetable      0          7464           ru             0          280      
  14. log            0          2168           temprec        0          16248     
  15. keys           0          832            ralloc         0          435328   
  16. gentcb         0          1696           ostcb          0          3440      
  17. sqscb          0          27488          sql            0          72        
  18. rdahead        0          224            hashfiletab    0          552      
  19. osenv          0          696            buft_buffer    0          1336      
  20. sqtcb          0          9000           fragman        0          25648     
  21. shmblklist     0          320            udr            0          568      

  22. Sess  SQL            Current            Iso Lock       SQL  ISAM F.E.
  23. Id    Stmt type      Database           Lvl Mode       ERR  ERR  Vers
  24. 95765                cashdb             DR  Wait 5     0    0    9.03

  25. Last parsed SQL statement :
  26.   EXECUTE PROCEDURE proc_getarrear ( ? )
复制代码


以前一直没有见过这种状态,请问是如何产生的,并且如何解决?

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
2 [报告]
发表于 2003-06-05 17:33 |只看该作者

存储过程为什么会睡觉(sleeping)?

一般的出现这种问题原因如下:

1、系统内存不足。可能事务占用了大量的mem,又不能及时释放。

2、事务中存在死循环。或者逻辑的规。

论坛徽章:
0
3 [报告]
发表于 2003-06-05 17:38 |只看该作者

存储过程为什么会睡觉(sleeping)?

那我怎么看这个事务占用了多少内存?

这个存储过程以前一直使用正常,都没有变过,应该不会说事务中存在死循环或者逻辑的规。

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
4 [报告]
发表于 2003-06-05 17:42 |只看该作者

存储过程为什么会睡觉(sleeping)?

用onstat -g ses  或者onstat -g sql  sesid
里面又说明

你贴的里面就有

论坛徽章:
0
5 [报告]
发表于 2003-06-05 17:47 |只看该作者

存储过程为什么会睡觉(sleeping)?

系统内存一共有4G啊 598008 应该不是一个大数目啊
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP