WEB开发网
开发学院数据库DB2 维护产生价值:只需加以注意即可降低数据库成本的... 阅读

维护产生价值:只需加以注意即可降低数据库成本的五种方法

 2010-09-16 00:00:00 来源:WEB开发网   
核心提示: 步骤 1. TABLEC 是访问的第一个表,DB2 优化器选择应用局部筛选 LAST_NM,维护产生价值:只需加以注意即可降低数据库成本的五种方法(5),但是因为所选的索引中不包含 SEQEN_NR,DB2 优化器会决定通过随机的 I/O 获取联结 TABLEB 表所需的所有 SEQEN_NR,

步骤 1. TABLEC 是访问的第一个表。DB2 优化器选择应用局部筛选 LAST_NM,但是因为所选的索引中不包含 SEQEN_NR,DB2 优化器会决定通过随机的 I/O 获取联结 TABLEB 表所需的所有 SEQEN_NR。因为没有使用包含 LAST_NM 和 SEQEN_NR 的索引结构执行联结,所以联结会推迟到获取数据页面时。(见图 3 中的 No. 1。)

步骤 2. 访问的第二个表 TABLEB 也会由于这样的索引设计损害性能,它应用局部筛选 ROLE_CD,在应用联结谓词之前也执行随机 I/O。因为没有使用索引结构执行联结,所以联结也会推迟到获取数据页面时。(见图 3 中的 No. 2。)

步骤 3. 访问的最后一个表 TABLEA 也会受害,但是这一次使用主/聚簇索引执行联结,使用连续 I/O 获取数据页面,应用局部筛选 GUAR_DT,然后用 ORDER BY 执行排序。(见图 3 中的 No. 3。)

访问的三个表都把筛选或联结推迟到访问数据页面时。这是因为没有同时满足筛选和联结需要的复合索引,DB2 优化器不得不在筛选和联结之间做出选择。

对于这个常用的重要的服务,解决方案包括以下步骤:

修改 LAST_NM.FIRST_NM 索引,在其中添加 SEQEN_NR 和 SSN_NR,从而实现纯索引访问,完全避免对数据页面执行随机 I/O。

修改 ROLE_CD 索引,在其中添加 SEQEN_NR,从而把筛选和联结组合起来。

在 TABLEA 上添加第五个索引 GUAR_DT.SEQEN_NR,从而把筛选和联结组合起来并避免 ORDER BY 排序。

新的索引解决方案根据所有筛选、联结和排序操作组合索引结构,这把 CPU 时间降低到了 0.02 秒。

3. 监视 RID 池失效

某些访问路径必须先完成许多步骤,然后才能返回一个结果行,这种访问路径开销很大。这些访问路径常常需要通过行标识符 (RID) 排序消除随机 I/O,它们被称为 List Prefetch、Multiple Index Access 和 Hybrid Join - Type N。这些访问路径在访问之前使用 RID 池对数据页面号进行预排序。RID 池资源是有限制的,超过这些限制时会发生表扫描。

上一页  1 2 3 4 5 6 7  下一页

Tags:维护 产生 价值

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接