数据库性能优化案例分析:解决高CPU和I/O Wait问题
110 浏览量
更新于2024-09-04
收藏 27KB DOC 举报
数据库性能Tuning的重要性和解决方案
在基于Web的业务系统中,数据库性能Tuning是一个非常重要的环节。系统的性能直接影响到用户的体验和业务的发展。今天,我们来分析一个数据库性能Tuning的问题,并讨论解决方案。
**问题描述**
系统是一个基于Web的业务系统,以online查询为主,数据更新以批量为主。然而,在某一天上午,客户反映系统非常慢,察看DB的CPU慢慢长到100%状态,服务基本处于不可用状态。i/o wait也挺高的。
**问题分析**
通过分析发现,客户需要的是n百万用户数据中的活动用户万数据,他们却全部把n百万数据从其他系统中收集到自己的系统中,在批量的时候又使用full table scan,性能自然不会好。
**解决方案**
1. **索引优化**:一些大量执行update/delete语句竟然没有建立索引,其实可以建立pk,根据pk处理。
2. **语句优化**:存在大量这样的语句:SELECT field FROM Tables name where trim(Service NUM)='DDDDDD',使用常量查询,造成每次查询都要parse,没有必要的占用的CPU--改!
3. **存储过程优化**:在批量的存储过程中,所有语句基本都是全表扫描!---和开发人员沟通,需要修改逻辑。
**优化结果**
修改后,CPU高峰时间基本稳定在30-40%之间。系统性能得到了明显的改善,用户的体验也得到了提高。
**结论**
数据库性能Tuning是一个复杂的过程,需要从多方面考虑,包括索引优化、语句优化、存储过程优化等。只有通过详细的分析和优化,才能达到最佳的性能。
**相关知识点**
1. 数据库性能Tuning的重要性
2. 索引优化的重要性
3. 语句优化的重要性
4. 存储过程优化的重要性
5. FULL TABLE SCAN的性能问题
6. Parse 机制的性能问题
7. 缓存命中率的影响
8. 等待事件的影响
**总结**
数据库性能Tuning是一个需要长期关注和优化的过程。只有通过不断的分析和优化,才能达到最佳的性能,提高用户的体验和业务的发展。
2017-02-19 上传
2018-12-28 上传
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
weixin_38520437
- 粉丝: 5
- 资源: 920
最新资源
- Android圆角进度条控件的设计与应用
- mui框架实现带侧边栏的响应式布局
- Android仿知乎横线直线进度条实现教程
- SSM选课系统实现:Spring+SpringMVC+MyBatis源码剖析
- 使用JavaScript开发的流星待办事项应用
- Google Code Jam 2015竞赛回顾与Java编程实践
- Angular 2与NW.js集成:通过Webpack和Gulp构建环境详解
- OneDayTripPlanner:数字化城市旅游活动规划助手
- TinySTM 轻量级原子操作库的详细介绍与安装指南
- 模拟PHP序列化:JavaScript实现序列化与反序列化技术
- ***进销存系统全面功能介绍与开发指南
- 掌握Clojure命名空间的正确重新加载技巧
- 免费获取VMD模态分解Matlab源代码与案例数据
- BuglyEasyToUnity最新更新优化:简化Unity开发者接入流程
- Android学生俱乐部项目任务2解析与实践
- 掌握Elixir语言构建高效分布式网络爬虫