一次大量Library Cache lock的处理

上周六一个项目反馈数据查询非常慢,单个数据索引查询平时只需要几秒,进行查询时1个小时还未出结果.


登陆项目数据库服务器,查看em,等待事件中大量的Library Cache lock;

第一次遇到比较荒,网上查等待的原因:

1.包,存储过程等运行时编译时会引起该等待,如运行时整进行ddl操作;

2.一个session在对SQL语句进行硬解析的时候.share pool的问题也可能出现该问题;


开始第一次遇到不太清楚原因.直接请教了新入职 的同事,看有没有较快的处理.

然后自己进行研究.


思路清晰是关键因素:

1.确认引起该等待的语句或操作

 em或者查询v$lock结合v$sql_text视图可以很清晰的看出是数据库的入库软件执行的sqlldr引起的

停止入库软件的运行也可以看出等待基本消失,确认问题的所在为sqlplr入库语句


2.针对入库语句做检查,停止入库,手动执行一条语句 报错:ora-01658,ORA-14400.

入库分区无法分配初始的分段,asm自动管理不存在最大单个文件16T的问题,检查asm磁盘组

果然磁盘组基本被塞满 只剩余1G左右.系统在表的分区第一次存储数据时分配空间 应当也属于ddl操作.产生了该等待

锁死各表,造成查询也很慢,几个loader进行入库每个表都被锁定,造成查询非常慢的问题.


问题定位,剩下的就比较好解决了.


思路一定要清晰,首先遇到问题一定不能怕.搞清楚问题是什么,可能引起问题的原因,进一步对问题的各个可能起因排查确定原因.

确定引起问题的原因后针对该错误进行处理就简单了

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值