DB2 Performance Expert 简化性能管理和调优 (2)
计算:(排序溢出行数) / (总排序行数)
理想值:对于非 DSS 型的任务来说,该值为零或接近零的值
结论 在出现排序溢出的情况时,可能会造成额外的开销,因为假如要将数据写入磁盘,那么排序就会需要一个合并阶段,这可能需要更多的 I/O。为了避免出现这种溢出,可以增加排序堆的大小,并对查询进行分析,以确定查询是否需要使用索引。
检查对表进行重构的需要
DB2 PE 步骤
在 System Overview 面板中选择 Statistic Details。
图 5. System Overview 在 Statistic Details 视图中选择 Tables,并选中 Receive table information。
图 6. Statistic Details
方法 Statistic Details 中的 Table 视图给出了有关表的具体信息,其中包括表名、数据库名、写入的行数、读取的行数、溢出的行数、表的文件 id、表的类型、页面重构等。
访问溢出的行 这个数字说明了对该表中溢出行进行存取(读和写)的数目。
溢出行说明了数据中的碎片情况。假如这个数字很高,那么您可以通过使用 REORG 工具对表进行重构,从而提高表的性能,这会清理数据中的碎片。当一行数据被更新并且不再适合原来写入的数据页时,就会出现行溢出的情况。这通常是对 VARCHAR 列进行更新的结果,或者是执行 ALTER TABLE 语句的结果。
页面重构:
这个数字说明了需要对一个表进行重构的页数。
对太多页进行重构可能会导致性能比优化插入方式的性能还要低。您可以使用 REORG TABLE 工具对表进行重构,从而消除数据碎片。您还可以使用 ALTER TABLE 语句的 APPEND 参数来说明插入某个表的所有数据都要附加到该表的末尾,以避免页面重构问题。在对行进行更新导致该行的长度增加的情况下,虽然页面可能有足够的空间来容纳新行,但是为了整理这段空间的碎片,可能需要对页面进行重构。或者,假如页面中没有足够的空间来容纳更大的行,就会创建一条溢出记录。您可以使用固定长度而不是可变长度的列来避免这两种情况。