IBM DB2事件监视器与explain plan的正确使用 |
本文标签:IBM DB2事件监视器 此文章主要向大家讲述的是IBM DB2事件监视器以及explain plan的正确使用方案,你如果对IBM DB2事件监视器以及explain plan的正确使用方案有兴趣的话你就可以点击以下的文章进行观看了 。
关于如何创建IBM DB2事件监视器的方法,请参看如下步骤:
IBM DB2事件监视器的第一种方法: 1. db2 create event monitor statev for tables,statements,transactions,deadlocks write to file /home/db2inst1/event maxfiles 10 maxfilesize 5 or CREATE EVENT MONITOR statev FOR STATEMENTS WRITE TO TABLE STMT(TABLE em.stmtTab) includes(rows_read,rows_written_stmt_text) 注:文件大小为5*4k,总大小为5*4k*10.大小要足够大,否则新的监控信息无法写入监视器 2. db2 set event monitor statev state 1 3. Run the SQL statements 如:insert into test09 values(1,2,default) 4. db2 flush event monitor statev 5. db2evmon gzdb statev > output.txt 6. db2 set event monitor statev state 0 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 /db2db/event 2. 激活事件监视器(确保有充足的可用磁盘空间): $> db2 "set event monitor SQLCOST state = 1" 3. 让应用程序运行 。 4. 取消激活事件监视器: $> db2 "set event monitor SQLCOST state = 0" 5. 使用 DB2 提供的 db2evmon 工具来格式化 SQL Event Monitor 原始数据(根据 SQL 吞吐率可能需要数百兆字节的可用磁盘空间): $> db2evmon -db DBNAME -evm SQLCOST > sqltrace.txt 6. 浏览整个已格式化的文件,寻找显著大的成本数(一个耗时的过程): $> more sqltrace.txt #利用EXPLAIN分析SQL SQL 的 Explain 通过图形化或基于文本的方式详细说明了 SQL 语句的每个部分是如何执行以及何时执行的 。这包括以下一些基本信息: 正被访问的表 正被使用的索引 何时连接数据 何时排序数据 Explain 还捕获更复杂的信息,在细究 SQL 正在发生什么时,该信息非常有用: 表和索引基数 正连接的表和索引的顺序 结果集的基数 在查询的每部分正在选择哪些字段 排序方法 SQL 每部分的时间范围 要理解 Explain 信息,您需要掌握的最重要概念是 timeron 。timeron 是 DB2 优化器使 用的计量单位,用来计量完成查询的时间和资源数量 。timeron 综合了时间、CPU 利用率、 I/O 和其它因素 。由于这些参数值是变化的,因此执行某个查询所需的 timeron 数量是动态 的,每次执行该查询所需的 timeron 都不同 。 #使用控制中心的EXPLAIN SQL 观察SQL的存取方案,分析优化参数,考虑优化的级别 。 #使用字符工具
可以从命令行调用 db2expln 工具,以获得查询的存取方案 。但是,该工具不返回优化器信息 。
以上的相关内容就是对IBM DB2事件监视器及explain plan的使用的介绍,望你能有所收获 。 |