一条insert语句插入就需要3秒,是什么样子的?

一、问题发现:

                    发现一个数据库语句执行很慢,奇怪的是,仅仅是一个insert 语句。难道一个insert语句要执行3秒钟,这个提起了我的兴趣。把当时的出问题的时段的awr报告打印出来一看发现一条奇怪的sql语句,我至今从来没有遇到过如此长的sql语句。看看它长什么样子:

     

     没有错,你没有看错,就是一条insert语句。这个我还没有截屏完整,好几个屏幕。绑定变量有28000个。第一次见这么长的sql语句,第一见绑定变量如此多的语句。

      和开发了解下需求:根据2个表数据,按一定业务逻辑插入到一个临时表,于是,就有上面这个拼接sql。(其实这要在以前,拿我来设计的话,我会直接写成plsql处理,但是现在是互联网微服务,于是,很多都变成微服务了。)

二、问题分析:

        insert语句很慢,索引很多是一个原因。分析了下awr,是cursor: pin S wait on X等待事件。这个事件什么意思呢?

A session waits for this event when it is requesting a shared mutex pin and another session is holding an exclusive mutex pin on the same cursor object.


Wait Time: Microseconds


Pa

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值