ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 一次数据库性能问题的调试(转)

一次数据库性能问题的调试(转)

原创 Linux操作系统 作者:jcszjswkzhou 时间:2019-04-05 15:15:05 0 删除 编辑
一次数据库性能问题的调试,性能调试,性能调优
基本情况:
  
  系统是一个基于web的业务系统以online查询为主数据更新以批量为主晚上执行应该说系统还不算负载太大5-1之后上班的时候客户反映很慢察看DB的cpu慢慢长到100%状态服务基本处于不可用状态i/o wait也挺高的
  经检查前些天的批量竟然有达到20多小时才完成导致次日批量都跑不起来
  
  打开statspack收集信息
  
  从系统中发现本应该夜间执行的批量作业还在运行停掉后rollback做了4个小时?a href="http://www.learners.cn" target="_blank">。ㄒ蛭?桓鰐ransaction中只有一个复杂的、数据量巨大的insert语句)
  
  然后做statspack分析
  
  系统中存在问题:等待事件较严重缓存命中率较低
  
  语句分析:
  
  1、一些大量执行update/delete语句竟然没有建立索引其实可以建立pk根据pk处理
  
  where中使用常量(引起parse)
  
  2、存在大量这样的语句:
  
  SELECT fieldx FROM Tablesname where trim(ServiceNUM) = 'DDDDDD' - 在ServiceNUM字段上是唯一索引因为trim就不能使用index(败笔) ——改!
  - 使用常量查询造成每次查询都要parse没有必要的占用的CPU —— 改!
  
  
  3、在批量的存储过程中
  
  所有语句基本都是全表扫描! —— 和开发人员沟通需要修改逻辑改进之后效果还是蛮大的
  
  另外发现一个问题:
  
  客户需要的是n百万用户数据中的活动用户万数据他们却全部把n百万数据从其他系统中收集到自己的系统中在批量的时候又使用full table scan性能自然不会好系统从刚开始设计的时候就存在隐患这个问题就需要从长计议了
  
  修改后CPU高峰时间基本稳定在30-40%之间
  批量基本在2个小时内完成
  
  其实是一个很简单的系统但是做到这种样子尤其是从设计到编码都存在问题

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/10294527/viewspace-122151/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2007-08-29

  • 博文量
    3488
  • 访问量
    2621606