网站首页
JSP空间
动态资讯
开源项目
技术文档
资源下载
J2EE资源
客户论坛
在线支付
 
  技术文档>>数据库技术>>Oracle技术>>Oracle开发>查看文档  
  深入讲解阻塞现象的产生原因及处理方法     
  文章作者:未知  文章来源:赛迪网技术社区  
  查看:135次  录入:管理员--2008-03-20  
 

【赛迪网-it技术报道】1. 使用 sp_who 这个存储过程, 查询sql上的当前进程, 观察 blk 列值是否有不为0的, 如果有不为 0 的, 表示有阻塞, 产生阻塞的进程的 spid 即是 blk 列值, 被阻塞的进程是 列 blk 值不为0的记录行对应的 spid。

2. 执行 sp_lock

3. 执行 sp_lock

4. 结合 2, 3 分析原因。

5. 使用 dbcc inputbuffer(

如果要自动删除阻塞的进程, 那么写一个 job 定期查询 sp_who , 将 blk 列值不为 0 的记录找出来, 用 kill 杀掉相关的进程即可。

注意, 一般不要轻易杀进程, 如果你的程序没有写好, 可能会导致不完整的数据。

例如, 在写订单主表和明细表的处理中, 没有使用事务, 当主表数据插入完成, 准备插入明细表数据时, 产生阻塞, 被你的监控程序 kill 掉的话, 就导致数据库中有不完整的订单(只有主表, 没有明细数据)。

另外, 如果你的程序的错误处理没有控制好, 则这样杀进程也容易导致程序崩溃, 丢失等。

另外, 查询进程相关的信息也可以直接查询 master.dbo.sysprocesses, 这里包含完整的信息, 你可以通过 blocked 列看是否有阻塞发生, 也可以看诸如登录的用户, 客户端, 使用此进程的前端applicationame等信息。

 
 
上一篇: oracle数据库百分比格式化的解决方案    下一篇: oracle 9.2.0.1版本函数编译的一个bug
  相关文档
在Oracle下开发Java程序的经典问题解答 09-01
带你深入了解oracle数据库的"sys"口令 (1) 07-30
实例讲解各种数据库当前日期的标准写法 02-03
讲解数据库变慢的三种情况及具体处理方法 06-04
Oracle安全性管理采取的基本措施简介 04-12
oracle数据库备份与恢复精华资料集锦 (1) 04-15
轻松掌握oracle数据库where条件执行顺序 04-21
如何获取指定表中指定字段内的可用编号 04-23
oracle 9i数据库的用户创建以及权限分配 05-07
教你快速的解决oracle缓冲区忙等待事件 11-15
使用"oracle"解析函数快速检查序列间隙 02-02
job进程不能启动时间再次停止运行的现象 03-24
oracle数据库建表脚本当中使用默认值的实例 08-15
轻松掌握删除oracle 10g垃圾表的好方法 11-21
解决JOB的Interval输入参数过长的问题 06-03
如何才能避免Oracle数据库的密码出现@符号 07-07
详细讲解oracle在solaris下的性能与调整 (1) 04-28
使用新的optimizer hints控制优化行为 (1) 03-05
在设计数据库时如何选择正确的数据类型 05-08
教你快速掌握Oracle中"HINT"的30个用法 09-29
返回首页 | 关于我们 | J网章程 | JSP空间合租 | 客服中心 | 免责声明 | 常见问题 | 参观机房
本站主机空间代理至厦门市华众网络科技有限公司
《中华人民共和国增值电信业务经营许可证》
编号:闽B2-20050079
@2005-2008福建JSP技术网 版权所有 闽ICP备05000928号
厦门(总部):13616026886 福州:0591-87655121
邮箱:admin@fjjsp.com 站长QQ,点击这里给我发消息