WEB开发网
开发学院数据库DB2 浅谈DB2数据库的故障处理及最佳实践 阅读

浅谈DB2数据库的故障处理及最佳实践

 2007-05-20 16:20:36 来源:WEB开发网   
核心提示: Tip:如何快速定位问题如果系统的CPU利用很高,IO很少,浅谈DB2数据库的故障处理及最佳实践(5),那么数据库的排序较多如果系统的IO繁忙,CPU很多是wait,我们可以使用db2expln来查看sql语句的访问计划和执行成本,首先将找到的sql语句写到一个文本文件中sql.in,那么

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

上一页  1 2 3 4 5 6  下一页

Tags:DB 数据库 故障

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接