标题: 初级DB2管理员通过简单工具进行性能分析:(上半部分--SQL语句采集)
du2
LU幼天使
Rank: 2



UID 701
精华 2
积分 64
帖子 120
活跃指数 0
LU金币 2006 个
LU金条 0 个
阅读权限 20
注册 2003-10-17
 
发表于 2003-10-29 20:36  资料  个人空间  短消息  加为好友 
初级DB2管理员通过简单工具进行性能分析:(上半部分--SQL语句采集)

自己刚刚接触DB2数据库不久,
通过最近一段时间的使用总结了一点点性能分析的东西,
怕自己过段时间就忘了,现在先贴在论坛上,
一是方便更多的使用者,二是我今后忘记了来看看也方便,
这里很大一部分都是从IBM DEVELOPERWORKS网站摘抄的,
我只是把自己的实践经过记录了下来,供大家参考。
(由于我的水平有限,所以只能这样简单的把步骤记录下来,还请大家在这方面多多提些建议!!!)


性能分析有很多方面,包括在数据库参数、硬件设备调整、还有SQL语句的调整,
其中对我们初级人员来说比较困难的就是对SQL语句捕捉与分析,
我对SQL语句的分析不在行,就只说一说如何在DB2下捕获执行的SQL语句,
对后边的SQL语句分析只能是简单介绍,以下示例都在 DB2 8.1 下测试成功。

首先介绍一下环境:
生产环境: IBM P670 + AIX 5.2 + DB2 8.1 SP2
分析环境: PC机 + Windows 2000 Professional + DB2 8.1 SP2

我们捕获SQL语句的前半段工作都是在生产环境下操作的,后半段是在分析环境下操作。
一般我们都不会在生产环境下进行分析工作,所以最好还是再找一台PC来进行分析工作。

************************************************************************************
第一部分:捕获SQL语句
************************************************************************************

一、首先我们查看当前数据库监控器(monitor switches)打开状态:

$db2 get monitor switches

监视器记录开关

db 分区号 0 的开关列表
缓冲池活动信息 (BUFFERPOOL) = OFF
锁信息 (LOCK) = OFF
排序信息 (SORT) = OFF
SQL 语句信息 (STATEMENT) = OFF //只有个开关是针对纪录SQL语句的。
表活动信息 (TABLE) = OFF
获取时间戳记信息(时间戳记) = ON 10/26/2003 22:17:13.906415
工作单元信息 (UOW) = OFF


$


二、打开数据库监控器开关:

$db2 update monitor switches using statement on
DB20000I UPDATE MONITOR SWITCHES 命令成功完成。
$
//注意,做这项工作前一定与数据库连接。


三、创建监控数据存放目录:(注意一定要有足够使用空间!!!)
$mkdir monitordb2
$cd monitordb2
$pwd
/home/db2inst1/monitordb2
$


四、创建SQL语句事件监视器(db2monitor),记录日志写入'/home/db2inst1/monitordb2'
$db2 "creat event monitor db2monitor for statements write to file '/home/db2inst1/monitordb2'"
DB20000I SQL 命令成功完成。


五、打开事件监视器(db2monitor)记录状态,开始记录SQL语句事件日志:
$db2 set event monitor db2monitor state =1
DB20000I SQL 命令成功完成。
$

到这一步,我们就可以开始收集执行SQL语句,运行你的业务程序,让它跑起来吧,执行的所有SQL语句都会被记录下来!
(一定要注意你系统保留的空间够不够,千万不要把机器撑暴了!!!)


六、收集到一定时间后,我们就可以停止纪录SQL语句了:
$db2 set event monitor db2monitor state=0
DB20000I SQL 命令成功完成。
$db2 terminate
DB20000I TERMINATE 命令成功完成。
$

现在我们看一下我们收集下来的成果,纪录的SQL日志文件:
$pwd
/home/db2inst1/monitordb2
$ls -all
总计 18120
drwxr-xr-x 2 db2inst1 db2grp1 256 10月 27 16时57 .
drwxr-xr-x 11 db2inst1 db2grp1 4096 10月 27 16时07 ..
-rw-r--r-- 1 db2inst1 db2grp1 4093490 10月 27 16时55 00000000.evt
-rw-r--r-- 1 db2inst1 db2grp1 4090432 10月 27 16时57 00000001.evt
-rw-r--r-- 1 db2inst1 db2grp1 1070982 10月 27 16时57 00000002.evt
-rw-r----- 1 db2inst1 db2grp1 300 10月 27 16时57 db2event.ctl
$
现在生成的这些文件格式不是我们可以看懂的东西,我们还需要通过工具来转换一下。
(注意,这些文件千万不要rm之类的方法手工去删除,否则这些文档就不能再用了。可以通过工具来删除。)



七、使用db2evmon工具生成可看的文本文件:
$pwd
/home/db2inst1/monitordb2
$db2evmon -path ./ > sqltrace.txt

Reading ./00000000.evt ...

Reading ./00000001.evt ...

Reading ./00000002.evt ...
$

现在我们就基本上完成了上半部分的工作,收集了SQL语句,
并且这时候生成的 sqltrace.txt 文件已经是我们可以看懂的格式了,
如果你不嫌麻烦,现在就可以通过看 sqltrace.txt 文件来分析系统中的SQL语句的问题了。
不过一般情况下,我们都会收集到几十兆甚至上百兆的信息(这个要看系统执行的SQL频率了),
基本上不能分析出什么问题,所以我们还需要进一步工作,把信息进行筛选。

顶部
燕狂徒
版主
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15


LU爱心使者  
UID 59
精华 14
积分 1712
帖子 3217
活跃指数 155
LU金币 4931 个
LU金条 616 个
阅读权限 210
注册 2003-9-19
 
发表于 2003-10-29 23:35  资料  个人空间  主页 短消息  加为好友 
很好,鼓励原创
加精,继续努力啊





http://www.100c.com.cn/oblog/user1/1/index.html
顶部
 



当前时区 GMT+8, 现在时间是 2008-12-3 04:16
乐悠LoveUnix论坛-京ICP备05005823号

Thanks to Discuz!  © 2001-2007    Power by LoveUnix.net
Processed in 0.091416 second(s), 6 queries , Gzip enabled

清除 Cookies - 联系我们 - 乐悠LoveUnix - Archiver