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

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

 2010-09-16 00:00:00 来源:WEB开发网   
核心提示: 由任意数量的程序添加到 RID 池中的 RID 越多,出现失效的概率就越大,维护产生价值:只需加以注意即可降低数据库成本的五种方法(6),RID 池失效会导致表扫描,RID 池失效的现象之一是连续预抓取数量出现意外的高峰,这是可以使用索引的 Stage 1/Sargable,但是,跟踪连续预抓取

由任意数量的程序添加到 RID 池中的 RID 越多,出现失效的概率就越大,RID 池失效会导致表扫描。RID 池失效的现象之一是连续预抓取数量出现意外的高峰。跟踪连续预抓取数量是查明失效的一种方法。更好的方法是使用在线监视器。图 4 给出在线监视器监视一个使用 Hybrid Join - Type N 的程序在一小时内得到的数据,它发现了 61 次 RID 池失效。

图 4. 一个使用 Hybrid Join - Type N 访问路径的程序在中午 12 点到下午 1 点之间出现了 61 次 RID 池失效

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

查看原图(大图)

对这个问题的一个解决方案是增加 RID 池的大小,但是这只能暂时减少失效;更糟糕的是,这可能根本无效。更好的解决方案是使用 DB2 跟踪或在线监视器查明高度依赖于 RID 池的查询。每个查询需要通过一直抓取到整个结果集的末尾来证明它对 RID 池的使用是适当的。无法通过这项测试的任何查询都需要关闭使用 RID 池的访问路径,方法是在查询的末尾添加 OPTIMIZE FOR n ROWS 或 FETCH FIRST n ROWS ONLY 子句。DB2 10 将利用外部工作文件处理溢出,从而减轻失效的影响,因此不再需要分析查询。但是,最好在迁移到 DB2 10 之前找出并解决这种问题,否则会使用大量工作文件。

4. 压制冻结的或性能差的 SQL

冻结的 SQL 就是嵌入在购买的应用程序中您无法修改的 SQL。冻结的 SQL 中的查询有时候不符合性能规则,但是您只能忍受它们。需要让这些查询使用尽可能少的资源。例如,WHERE DATE(col_TS) BETWEEN :date1 AND :date2 是一个 Stage 2/Residual 条件。这个谓词应该改写为 WHERE col_TS BETWEEN TIMESTAMP(:date1, '00:00:00')AND TIMESTAMP(:date2, '59:59:99'),这是可以使用索引的 Stage 1/Sargable。但是,您无法做修改。

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

Tags:维护 产生 价值

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