db2监控及优化

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

在DB2 UDB中有两种类型的监控器:快照监控器和事件监控器

一、建立IBM DB2事件监视器:

1. 创建一个SQL Event Monitor,写入文件:

db2 create event monitor evmname for eventtype write to file 'directory'

例:db2 create event monitor mymonitor for deadlocks,statements write to file 'D:\db2tst\logs' maxfiles none maxfilesize 8192

在unix下不需要加db2,以下命令相同

2. 激活事件监视器(确保有充足的可用磁盘空间):

$> db2 "set event monitor mymonitor state = 1" (必须是"")

3. 让应用程序运行。

4. 取消激活事件监视器:

$> db2 "set event monitor mymonitor state = 0"

5. 使用DB2 提供的db2evmon 工具来格式化SQL Event Monitor原始数据(根据SQL 吞吐率可能需要数百兆字节的可用磁盘空间):

$> db2evmon -db DBNAME -evm mymonitor > sqltrace.txt

db2evmon -db zssmk -evm mymonitor > sqltrace.txt

6. 浏览整个已格式化的文件,寻找显著大的成本数(一个耗时的过程):

$> more sqltrace.txt

补充:

1.删除事件监视器

drop event monitor mymonitor

2.涉及到的系统表

select * from SYSCA T.EVENTMONITORS;

select * from SYSCA T.EVENTS;

select * from SYSCA T.EVENTTABLES

3.查看命令使用帮助

命令名?

db2evmon ?

Usage: db2evmon [-db] [-evm]

or

db2evmon -path

4.

在DB2 UDB 中存在两种和死锁有关的事件类型:

DEADLOCKS

记录简单的应用程序信息。

DEADLOCKS WITH DETAILS

记录所有复杂的信息,包括应用程序、执行语句声明以及死锁的详细信息。但是使用这种事件监控器会因为需要得到大量额外的信息而降低系统的性能。

5.锁及涉及相关概念(锁包括共享锁也叫读锁和排他锁也叫写锁)

行级别的排他锁表级别的排他锁所有行的共享锁锁等待

两个本身处于锁等待并且占有资源的应用程序互相等待另外一方所持有的资源,这时候Session A和Session B就出现了死锁状态

6.db2中有关锁的设置(db2 get db cfg)

检查死锁的时间间隔(毫秒)(DLCHKTIME) = 10000

锁定超时(秒)(LOCKTIMEOUT) = -1

7.

监控运行时间长排序次数多读最多运行频率高的SQL

select

--stmt_text

*

from table(snapshot_dyn_sql('zh_card',-1)) as a // 表函数的处理方式,在v.9中可以查看系统管理视图

select A VERAGE_EXECUTION_TIME_S , SUBSTR(STMT_TEXT,1,200) AS STMT_TEXT from SYSIBMADM.

TOP_DYNAMIC_SQL order by A VERAGE_EXECUTION_TIME_S desc fetch first 5 rows only;

8.

参考文章:

1./DB2shujuku/249028.html

2./bbsdetail_1802504.html

3./bbsdetail_1787577.html

4./mysql/1584.html?bhjwmid=3394

一些命令及提示文本

在db2命令中使用grep b2pd -db zssmk -applications |grep -i lock 加上| ,grep关键字,-i参数lock关键字

snapshot for locks db2

list node directory

list db directory

update db cfg using locktimeout 10

DB20000I The UPDA TE DA TABASE CONFIGURA TION command completed successfully.

SQL1363W One or more of the parameters submitted for immediate modification

were not changed dynamically. For these configuration parameters, all

applications must disconnect from this database before the changes become

effective.

UOW -> Unit Of Working 工作单元理解为事务处理的过程

事务是数据库系统中的核心概念之一。作为数据库系统的逻辑工作单元(Unit of Work),事务必须具有四个属性,即原子性、一致性、隔离性和持久性(ACID)

二、重中之重:查看死锁

1.db2pd -db database-name -applications

示例:db2pd -db zssmk -applications

C:\Documents and Settings\Administrator>db2pd -db zssmk_92 -applications

Database Partition 0 -- Database ZSSMK_92 -- Active -- Up 0 days 00:07:35

Applications:

Address AppHandl [nod-index] NumAgents CoorTid Status C-AnchID C-StmtUID L-AnchID L-StmtUID Ap

pid

0x064A7FB0 568 [000-00568] 1 1868 UOW-Waiting 0

0 241 1 *L

OCAL.DB2.0902********

0x064AAB30 560 [000-00560] 1 3092 ConnectCompleted 0

0 0 0 *L

OCAL.DB2.0902********

相关文档
最新文档