首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >[Oracle故障处理]记一次INST_DRTLD_MISMATCH导致的version count过多的问题

[Oracle故障处理]记一次INST_DRTLD_MISMATCH导致的version count过多的问题

作者头像
bsbforever
发布2020-08-19 15:22:49
发布2020-08-19 15:22:49
8550
举报

这个专题讲一些日常运维的异常处理

今天讲一个latch free 等待事件的处理过程

1. 现象

今天查看公司一台9i数据库的性能,发现latch free等待事件

2. 原因查找

看到latch free ,想到可能是共享池的问题,一般可能是硬解析过多导致冲突

2.1 检查执行次数为1的语句

我们首先查找shared pool中 执行次数等于1的语句

代码语言:javascript
复制
select substr (sql_text,0, 40), count (*),max(module)
  from v$sql
 where executions = 1
 group by substr (sql_text,0, 40)
 order by count (*) desc

这里找出来一条insert 语句有2.5W的条目

2.2 检查未使用绑定变量的语句

代码语言:javascript
复制
select sql_text, hash_value, module , first_load_time, last_load_time
  from v$sql
 where sql_text like 'INSERT INTO FWCATNS_STG_SWIN@DEVFWCP (C%' order by last_load_time desc

查下来一看hash_value的值是一样的,说明不是绑定变量的问题,而是version count过多,而且是五分钟一次,接下来我们来分析原因

2.3 查看version count 过多原因

我们通过如下语句找出未复用的原因

代码语言:javascript
复制
select * from v$sqlarea where hash_value=2347964182;


select * from v$sql_shared_cursor where kglhdpar = 'C0000001D25F7518' ;

发现是由于INST_DRTLD_MISMATCH这个导致

PS:10g及以上使用如下语句查询

代码语言:javascript
复制
select * from v$sql_shared_cursor where address = '0000000386BC2E58'

2.4 分析INST_DRTLD_MISMATCH

这个栏位官方的解释为:

Insert direct load does not match the existing child cursor

是由于insert 使用了direct load导致的,但是我上面的语句并没有append的hint呀,这怎么回事儿呢

这时经过搜索direct load,发现:

Direct-load INSERT (serial or parallel) 只支持INSERT ... SELECT 语法

和上面的语句语法相同

使用它需要加APPNED HINT

但是我们的没有使用hint,猜测可能Oracle认为查询的结果有很多的值而导致使用direct load方式

这时我在asktom上咨询了下,他们认为是bug ,需要升级,链接见最后

3. 问题解决

3.1 临时方案

升级临时是不可能的,我先刷新了下shared_pool

代码语言:javascript
复制
alter system flush shared_pool;

3.2 修改应用

我查询上面insert语句的的查询结果为0,就叫应用人员修改看是否可以现行查询然后进行insert

至此问题解决,最后还是建议能升级的数据库就升级啦~

4.参考链接

Direct-Load INSERT

INST_DRTLD_MISMATCH cause version count very high

https://docs.oracle.com/cd/E18283_01/server.112/e17110/dynviews_3059.htm

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2018-08-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 宅必备 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. 现象
  • 2. 原因查找
    • 2.1 检查执行次数为1的语句
    • 2.2 检查未使用绑定变量的语句
    • 2.3 查看version count 过多原因
    • 2.4 分析INST_DRTLD_MISMATCH
  • 3. 问题解决
    • 3.1 临时方案
    • 3.2 修改应用
  • 4.参考链接
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档