一次涉及到物化视图的DB2 Insert性能问题的诊断

本文记录了一次由于物化视图的refresh immediate特性导致DB2数据库插入性能严重下降的问题诊断过程。通过db2top、db2pd等工具,发现大量读取操作集中在users表而非插入的表上。最终,通过DDL检查发现物化视图的即时刷新机制是问题所在。解决方案是将刷新策略改为延迟,或者在批量操作前后手动管理物化视图。
摘要由CSDN通过智能技术生成
一 问题描述:

今天得到Devops兄弟的报告,说某个数据插入job突然间慢了很多,平时10多分钟就能完成的,跑了10个小时左右没有完成。 Devops的Lock兄弟也做的最初始的问题诊断,他通过topas,看到db2sys占用了60%左右的机器内存,进入db2top 选择“D - Dynamic SQL” 看到如下简单的SQL一直在执行。

INSERT INTO xxx.xxx_xxx_DOMAIN ("ID","DATE_ENTERED",...,"ID_REF") VALUES (?,?,... ? )
有如下现象:

    1. 每秒钟插入的条数很少,只有1,2条。 (通过Dynamic SQL输出中的 Num Execution可以看出)

    2. 非常巨大的Rows Read. (通过Dynamic SQL输出中的 Rows Read可以看出)


二 问题诊断

得到Lock兄弟的求救信号后,开始如下调查:

1.  查看OS的运行情况,因为此台服务器是AIX,所以使用topas.

  •    CPU使用率60%, CPU wait% 很小
  •    磁盘很空闲,Disk busy% < 1%
  •    网络的char out, char in都很小,所以网络也不是瓶颈
  •    内存几本没有pagein 和 pageout

       总体情况是CPU比较繁忙,并且从topas下面显示的top 进程可以看出是DB2的主进程db2sys占用了主要的CPU.


2. 既然确认此问题是DB2自己的问题,而不是运行在此服务器上别的程序造成的问题,那么进入db2top来分析问题。

  •   使用db2top => D - Dynamic SQL,确认Lock报告的问题。 看到的情况跟Lock描述基本一致。
  •   使用db2top => B - Bottlenecks , 看到CPU, sorts Memory都是有Agent 18542占用绝大部分
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值