WEB开发网
开发学院数据库DB2 深入优化DB2 数据库的五个最佳实践 阅读

深入优化DB2 数据库的五个最佳实践

 2007-05-20 16:19:55 来源:WEB开发网   
核心提示: 图3:通常用表单来确定谓词是否合格还有一些谓词不能看作阶段1被文档化,因为他们不能总处于阶段1,深入优化DB2 数据库的五个最佳实践(3),加入表序列和查询重写也能够影响谓词被过滤掉的阶段,让我们通过例子查询来显示重写您的SQL的影响,100,000个四字节的列可能在大约一秒的时间内完成排

图3:通常用表单来确定谓词是否合格

还有一些谓词不能看作阶段1被文档化,因为他们不能总处于阶段1。加入表序列和查询重写也能够影响谓词被过滤掉的阶段。让我们通过例子查询来显示重写您的SQL的影响。

例子1:COL1和COL1之间的值:

任何类型的谓词如不能被阶段1识别,就是阶段2。如下所示就是阶段2谓词。然而,重写可能促进对可索引阶段1的查询:Value>=COL1ANDvalue<=COL2。

这意味着,优化器也许会在多个索引中选择一个匹配的索引来使用谓词。没有重写,谓词的剩余被当作阶段2。

例子2:COL3NOTIN(K,S,T):

如果可能,非可索引的阶段1的谓词也应该被重写。例如,符合以上条件的是阶段1,但不是可索引的。括号里值的列表辨认什么与COL3不相等。为了确定重写的可行性,辨认出那些COL3不相等的、更长和更不稳定的表单,就越不具有可行性。如果对面的(K,S,T)是少于200的静态值,就值得输入额外的重写。促进阶段1的条件对于可索引的阶段1,提供了其它匹配索引选择的优化器。既使一个可支持的索引在绑定时间不可利用,重写也将确保查询具有索引访问的资格,并且此索引将在以后被创建。一旦一个索引被创建并与COL3合并,重新绑定的事务也许可能获得匹配的索引访问,那里的旧谓词将不会对重新绑定有影响。

技巧3:仅选择需要的列:

每一个被选择的列必须单独地被传回到调用程序,除非对整个的DCLGEN定义有精确匹配的。这也可能依赖于您向所有列发出的请求,但是,真正的损失发生在需要排序的时候。每一个被SELECTed的列,和重复的排序列,使得排序文件的宽度更宽。文件越长越宽,排序越慢。例如,100,000个四字节的列可能在大约一秒的时间内完成排序。而只有10,000个五十字节的列可能在同样时间内完成排序。实际的时间是非常依赖于硬件的。

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

Tags:深入 优化 DB

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