网站首页
本站精华
免费下载
游客:
注册
|
登录
|
会员
|
搜索
|
帮助
LoveUnix
»
DB2 & Informix
» 初级DB2管理员通过简单工具进行性能分析:(上半部分--SQL语句采集)
‹‹ 上一主题
|
下一主题 ››
投票
交易
悬赏
活动
打印
|
推荐
|
订阅
|
收藏
标题: 初级DB2管理员通过简单工具进行性能分析:(上半部分--SQL语句采集)
du2
LU幼天使
UID 701
精华
2
积分 64
帖子 120
活跃指数 0
LU金币 2006 个
LU金条 0 个
阅读权限 20
注册 2003-10-17
#1
大
中
小
使用道具
发表于 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频率了),
基本上不能分析出什么问题,所以我们还需要进一步工作,把信息进行筛选。
燕狂徒
版主
UID 59
精华
14
积分 1712
帖子 3217
活跃指数 155
LU金币 4931 个
LU金条 616 个
阅读权限 210
注册 2003-9-19
#2
大
中
小
使用道具
发表于 2003-10-29 23:35
资料
个人空间
主页
短消息
加为好友
很好,鼓励原创
加精,继续努力啊
http://www.100c.com.cn/oblog/user1/1/index.html
投票
交易
悬赏
活动
LoveUnix
专项技术区
> AIX -IBM UNIX
> 其他UNIX & Linux
> i5 (AS400) & IBM大机
> PC Server & HPC
> 存储设备
> 备份软件
> 网络 & 安全
> 编程开发 & Rational
> DB2 & Informix
> ORACLE等数据库
> 中间件技术
行业综合区
> 职业咨询 前程无忧
> 培训认证 行业入门
> 行业应用 项目实施
> 产品信息 商务交流
> Free download下载
交流灌水区
> 蓝色太平洋
> 墨香雅韵
> 论坛建设
> 博客专区
当前时区 GMT+8, 现在时间是 2008-12-3 04:24
乐悠LoveUnix论坛-京ICP备05005823号
Thanks to
Discuz!
© 2001-2007 Power by
LoveUnix.net
Processed in 0.077424 second(s), 6 queries , Gzip enabled
TOP
清除 Cookies
-
联系我们
-
乐悠LoveUnix
-
Archiver
界面风格
----------
Discuz! 5 Default
新DISCUZ风格
控制面板首页
编辑个人资料
积分交易
公众用户组
好友列表
升级个人空间
基本概况
流量统计
客户软件
发帖量记录
论坛排行
主题排行
发帖排行
积分排行
在线时间
管理团队
管理统计