浅谈DB2数据库故障处理及最佳实践
2008-09-03 16:28:04 来源:WEB开发网Tip:如何快速定位问题
如果系统的CPU利用很高,IO很少,那么数据库的排序较多
如果系统的IO繁忙,CPU很多是wait,那么说明数据库有过多的IO
如果系统CPU,IO都很空闲,那么说明可以是有锁的问题
如果系统IO,CPU都非常忙,说明有执行代价非常高的sql在执行
数据库一般有三类的性能问题,一是CPU占用过多,二是IO过于繁忙,三是有锁等待。
1.快速找到执行成本较高的sql
首先要打开监视器的开关
db2 update monitor switches using bufferpool on lock on sort on statement on table on uow on
在系统最繁忙的时候,运行
db2 get snapshot for all applications > app.out
然后在该文件中查找处于executing状态的应用,找到执行的对应的sql语句。
如果用这种方法找不到,可以收集sql的快照
db2 get snapshot for dynamic sql on <dbname> > sql.out
这个快照记录了动态语句的快照信息,可以根据
Total execution time (sec.ms) = 0.000000
Total user cpu time (sec.ms) = 0.000000
Total system cpu time (sec.ms) = 0.000000
这些信息来找到最耗时的语句。
2.如何优化sql语句
DB2提供了很好的工具来做sql语句优化。首先要对找到的sql语句进行分析,看是否是该语句引起了性能问题。我们可以使用db2expln来查看sql语句的访问计划和执行成本。
首先将找到的sql语句写到一个文本文件中sql.in,以“;”结尾,然后运行
db2expln –d <dbname> -f <sql.in> -z “;” –g –o sql.exp
查看 sql.exp可以看到这个sql语句的执行成本。
- ››db2 对float类型取char后显示科学计数法
- ››DB2中出现SQL1032N错误现象时的解决办法
- ››DB2 锁升级示例
- ››数据库对象——存储过程
- ››db2诊断系列之---定位锁等待问题
- ››数据库设计词汇对照表
- ››db2 命令选项解释
- ››数据库大型应用解决方案总结
- ››DB2 最佳实践: 使用 DB2 pureXML 管理 XML 数据的...
- ››DB2 9.5 SQL Procedure Developer 认证考试 735 准...
- ››DB2 9.5 SQL Procedure Developer 认证考试 735 准...
- ››DB2 9.5 SQL Procedure Developer 认证考试 735 准...
更多精彩
赞助商链接