db2top工具详解

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

Database (d)

Figure 2. Database screen

在数据库屏幕,db2top提供了一组对整个数据库的性能监控单元。

用户可以监视活动会话(MaxActSess),排序内存(SortMemory)和日志空间(LogUsed)。这些监测元素可以帮助用户确定这些元素的当前使用百分比。如果这些因素中的一个开始达到很高甚至100%时,用户应该开始调查发生了什么事。

当前时间和数据库开始时间(Start Time)相比能让我们了解数据库运行了多久。这个值结合其他检测元素去调查那些已存在一段时间的问题是非常有用的。

锁的使用(LockUsed)和升级(LockEscals)对缩小锁定问题非常有帮助。如果LockEscals 数量很大时,则增加LOCKLIST和MAXLOCKS数据库参数是一个好主意或者寻找那些引起这个问题的不良查询语句。

L_Reads,P_Reads和A_Reads代表逻辑读,物理读和异步读取。结合的命中率(HitRatio)值,这些变量对于评估大多数的读取发生在存储器中还是磁盘I / O里是非常重要的。因为磁盘的I / O比存储器存取慢得多,用户更喜欢访问在内存中的数据。当用户看到HitRatio 下降低则可以查看缓冲池(bufferpools)是不是不够大了,或是不是有查询进行了太多的全白扫描而导致页面数据从内存洗冲到磁盘。

和读类似,A_Writes代表异步写入,这表明数据页是由异步页清洁剂之前写的缓冲池空间是必需的。通过db2top 刷新频率这段时间内的写数量我们还能知道有多少写请求发生了。还能计算每次写入的平均花费时间这对分析I/O瓶颈引起的一些性能问题有所帮助。当A_Writes/Writes的比值越高则写I/O性能越高。

SortOvf代表排序溢出。如果用户发现这个数字变为非常高,就需要寻找查询了。排序溢出发生在SORTHEAP不足够大,导致排序(Sort)或HashJoin操作可能会溢出数据到临时空间。有时该值随着SORTHEAP增加而降低,但在其他情况下,可能没有多大帮助,如果进行排序的数据集比可分配给SORTHEAP内存大得多。如果请求的数据量超过缓冲池可容纳的临时空间大小那么就可能需要物理I/O来进行SORT或哈希链接在这种情况下排序溢出将是很大的瓶颈。因此优化查询来减少排序溢出的数量能显著提高系统的性能。

在数据库屏幕的最后四个条目显示的平均物理读取时间(AvgPRdTime),平均直接读取时间(AvgDRdTime),物理平均写入时间(AvgPWrTime)和平均直接写入时间(AvgDWrTime)。这四个项目直接反映I/ O子系统性能。如果用户发现一个意想不到的大量的时间花费在每个读或写操作,进一步的调查应到I/ O子系统。

正常情况下,DB2 排序发生在内存中,这块内存叫做排序堆,即 SORTHEAP。当需要排序的数据超出 SORTHEAP 大小限制时,就会发生排序溢出。溢出的数据会写到临时表中,这会产生更多的I/O,因此对性能会有较大影响。

Tablespace (t)

Figure 3. Tablespace screen

表空间屏幕提供每个表空间的详细信息。Hit Ratio%和Async Reads%列对用户来说是非常重要的。在数据库级别仅仅监视缓冲池命中率,你可能无法获得足够精确的信息。在包含多个表空间的环境中,在一个表空间中发生了不良查询现象会被所有表空间平均命中率遮蔽。在每个表空间级别上监测Hit Ratio%和Async Reads%对于分析系统工作细节很有帮助。Delta逻辑读取(写)和Delta物理读取(写)(Delta 逻辑读(写入)和Delta 物理读(写入))说明这些表空间如何“忙”的。一些不太活跃的表空间可能不具有非常高的缓冲命中率。在大多数情况下最好使用活动性更大的表空间。

想要左右滚动屏幕可以使用键盘上的左,右箭头键。所有的列信息不能在一个屏幕上显示可以通过按下左或右箭头键来查看。

Space Used,Total Size和% full能够很方便的查看各表空间的使用率情况,还能从其他列信息中查看表空间类型是DMS还是SMS。

Dynamic SQL (D)

Figure 4. Dynamic SQL screen

动态SQL屏幕提供缓存的SQL语句的详细信息。用户可以再此屏幕对特定SQL语句产生执行计划(DB2EXPLN)和(db2exfmt)。

执行数量(Num Execution)和平均执行时间(Avg ExecTime)可以用来了解查询语句执行了多少次和平均运行时间。通过平均CPU时间(Avg CpuTime)与平均执行时间(Avg ExecTime)比较能看出执行时间花费在CPU上还是花在了等待锁或I/O上。

行读取(Row read)和行写入(Row written)能够明白查询的行为。例如,如果用户看到一个SELECT查询语句关联了大量的写,这可能表明该查询可能会有排序(哈希联接)溢出而且需要进一步调整来以避免数据溢出临时空间。

数据,索引的Hit ratio(命中率%)和临时l_reads来帮助用户轻松解决缓冲池大小是否需要调整。(AvgSort PerExec)和排序时间能计算出在一次执行期间进行了多少排序。

db2top实用程序还提供了产生DB2EXPLN或db2exfmt报告功能而无需手动运行该命令。通过动态SQL屏幕上输入一个大写L,它会提示你输入一个SQL字符串哈希。SQL散列字符串位于表中的第一列,例如“00000005429283.”用户可以复制该字符串并将其粘贴到光标提示处,按下Enter键,如图5:

Figure 5. Dynamic SQL screen -- Query text

然后,选择e选项生成DB2EXPLN输出,或者选择x选项生成db2exfmt输出如果已经导入到数据库中。

Session (l)

Figure 6. Session screen

相关文档
最新文档