标题: 初级DB2管理员通过简单工具进行性能分析:(下半部分--筛选分析)
du2
LU幼天使
Rank: 2



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


其实DB2下性能分析的软件很多,但是大多数都是付费的,并且安装也很麻烦,
这里我们使用的是一个叫 Ramakrishna Kolluru 的DB2工程师编写的 java 软件,
我先介绍一下这位大哥:(看图片张的有点像阿三,不过还是很佩服!)

(Ramakrishna Kolluru 是位于加利福尼亚州帕洛阿尔托的 SeeCommerce.com 的高级数据库工程师。
他通过了 Oracle 9i 和 DB2 7.1 的 DBA 认证。SeeCommerce 是供应链性能管理方面的佼佼者。
可以通过 rkolluru@seecommerce.com 与他联系。)

JAVA源代码我就放在这里大家下载,免得自己编辑万一出些什么问题~~~


************************************************************************************
第二部分:分析SQL语句
************************************************************************************


八、准备分析工具 -- DB2Trace.java
我们把 DB2Trace.java 源代码下载后,放在分析环境的机器环境中,准备编译 JAVA 程序:
C:\Program Files\IBM\SQLLIB\db2monitor\>dir
C:\Program Files\IBM\SQLLIB\db2monitor 的目录

2003-10-27 20:13 <DIR> .
2003-10-27 20:13 <DIR> ..
2003-09-04 18:13 5,259 DB2Trace.java
5 个文件 10,746,836 字节
2 个目录 330,964,992 可用字节


开始编译 java 程序,注意一般我们使用DB2自带的 javac 程序来编译程序,所以一定要把javac的路径写清楚:

C:\Program Files\IBM\SQLLIB\db2monitor>C:\PROGRA~1\IBM\SQLLIB\java\jdk\bin\javac DB2Trace.java

C:\Program Files\IBM\SQLLIB\db2monitor\>dir
C:\Program Files\IBM\SQLLIB\db2monitor 的目录

2003-10-27 20:13 <DIR> .
2003-10-27 20:13 <DIR> ..
2003-10-27 20:13 2,754 DB2Trace.class
2003-09-04 18:13 5,259 DB2Trace.java
2003-10-27 20:09 0 javac
5 个文件 10,746,836 字节
2 个目录 330,964,992 可用字节

现在我们就准备好了一个简单实用的SQL语句分析工具,免费、简单,还可以根据我们自己的需求量身修改……
下面我们要做的是在分析环境下创建一个数据库供分析软件使用!

九、创建新的数据库(db2monit),使用缺省值:(如果已经有数据库可以跳过这一步!)
C:\Program Files\IBM\SQLLIB\db2monitor>db2 CREATE DATABASE DB2MONIT ON E: USING CODESET GBK TERRITORY CN COLLATE USING SYSTEM


十、创建单独的缓冲池(DB2MONBP)

C:\Program Files\IBM\SQLLIB\db2monitor>db2 connect to DB2MON

数据库连接信息

数据库服务器 = DB2/NT 8.1.2
SQL 授权标识 = ADMINIST...
本地数据库别名 = DB2MON



db2 => CREATE Bufferpool DB2MONBP SIZE 4000 PAGESIZE 32 K
DB20000I SQL 命令成功完成。

缓冲池大小自己确定,够用就好了,但是 PAGESIZE 一定要是32 K 。
创建好缓冲池后,我从新启动了一次数据库,不过这个是否需要我现在也没有弄太清楚,那位可以帮我确定一下~~~


十一、创建分析SQL语句的用户表空间(TEST)和临时表空间(临时表空间),为导入数据使用:
创建分析SQL语句的(TEST)用户表空间
db2 => CREATE REGULAR TABLESPACE TEST PAGESIZE 32 K MANAGED BY SYSTEM USING ('E:\DB2INST1\DB2MONITOR') BUFFERPOOL DB2MONBP
DB20000I SQL 命令成功完成。

创建用户临时表空间:
db2 => CREATE USER TEMPORARY TABLESPACE DB2MONUSETEMP PAGESIZE 32 K MANAGED BY SYSTEM USING ('E:\DB2INST1\db2monusetemp' ) EXTENTSIZE 16 OVERHEAD 10.5 PREFETCHSIZE 16 TRANSFERRATE 0.14 BUFFERPOOL "DB2MONBP"


十二、将捕获的数据通过 DB2Trace 工具导入数据库中:

E:\DB2INST1\db2monitor_data>java DB2Trace sqltrace.txt jdbc:db2:db2mon db2admin password
这里使用的JDBC连接,看 DB2Trace.java 源代码前面有说明。


现在捕获的SQL语句数据已经进入了数据库,下面就要看我们怎么分析了,
分析员了很简单,大部分都是从执行时间的长短来判断,或者使用频率来判断,
或者是排序时间或占用CPU时间等等~~~


十三、分析输出,这些都是比较简单的SQL语句:


* 按照执行时间降序排列执行耗时最长的 SQL 语句。为了确定这些语句,使用下面的 SQL SELECT 语句:

select sqltxt, exectime "ExecutionTime(sec)" from db2trace
where operation not in ('Static Commit',
'Static Rollback', 'Prepare', 'Open',
'Describe', 'Compile')
order by decimal (exectime) desc
fetch first 10 rows only

* 按照频率降序排列执行次数最多的 SQL 语句。可以用下面这条查询来确定这些语句:

select distinct(sqltxt),count(*) Count from db2trace
where operation not in ('Static Commit', 'Static Rollback',
'Prepare', 'Open', 'Describe', 'Compile')
group by sqltxt
order by count(*)desc
fetch first 10 rows only

* 按照 CPU 时间降序排列最耗 CPU 时间的 SQL 语句。用下面这条查询来确定这些语句:

select sqltxt ,usrcpu "UserCPU(sec)" from db2trace
where operation not in ('Static Commit',
'Static Rollback', 'Prepare', 'Open',
'Describe', 'Compile')
order by usrcpu desc
fetch first 10 rows only

* 按照总排序时间降序排列排序时间最长的 SQL 语句。用下面这条查询找到这些语句:

select sqltxt ,totsorttime "TotalSortTime(ms)" from db2trace
where operation not in ('Static Commit',
'Static Rollback', 'Prepare', 'Open',
'Describe', 'Compile')
order by decimal(totsorttime) desc
fetch first 10 rows only


通过上面的分析,你是不是已经抓到了一些偷偷消耗资源的 BAD-SQL 呢?

原文:

http://www-900.ibm.com/developerWorks/cn/d...03kolluru.shtml



 附件: 您所在的用户组无法下载或查看附件
顶部
 



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

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

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