下午接到同事的电话。说数据库内存cpu都很高。应用服务器停了,数据库压力还没有降下去。
进去后。发现有近50个enq: TX - row lock contention等待事件,还有几十个read by other session等待事件。查看了一下,这些会话都锁定了一张表,都在做update操作。
把update语句粘贴出来,一看执行计划。看了吓我一跳。全表扫描。更新一行也全表扫描,问了一下开发,原来他们前几天处理过这个表,但是重建的时候没有建主键。
这下问题好办了。把主键建上。
问题又来了,主键唯一冲突。好家伙。后来发现插入的重复数据是一摸一样的。这下把重复记录都删掉,留下一条,然后把主键建上。
把应用起来,一切正常。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/25027760/viewspace-752119/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/25027760/viewspace-752119/