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

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

 2007-05-20 16:19:55 来源:WEB开发网   
核心提示: 图7:Querythatisnon-indexableandnon-sargable(stage2)一个新场景被创建并且查询被重写在列值中使用"a>="和"a<=",注意,深入优化DB2 数据库的五个最佳实践(7),谓词现在是可索引的和s

图7:Querythatisnon-indexableandnon-sargable(stage2)

一个新场景被创建并且查询被重写在列值中使用"a>="和"a<="。注意,谓词现在是可索引的和sargable。记住以上的信息,谓词现在将由数据管理器(阶段1)处理,以减少这次查询的潜在响应时间。

图8:查询是indexable和sargable(阶段1)

随后可以使用比较工具来比较他们和"<>"之间的性能,会发现"<>"更有效的减少消耗的时间。

图9:耗时减半

解决的技巧3:选择唯一需要的列:

SQL调优的特点不仅是相对于使用"SELECT*"的建议,更提供一个事半功倍的可以令产品自动重写SQL的特点。建议和相对应的建议操作将提供重写您SQL的能力,简单地检查想要的列并选择"applyadvice"按钮,SQL调优将用被选择的列替换"*"。

图10:"applyadvice"的特点是将重写SQL,并重视选择的建议操作。

解决的技巧4:选择唯一需要的行:

越少的行被检索,查询将运行的越快。使用QuestCentral能比较您最初的SQL相对于选择较少行但相同的SQL语句。使用多个场景和利用比较特点,比较那些立刻显示发生变化的性能影响的场景。在以下例子中,两张表单的加入,产生了一个有意义的结果集。由于加入了"FetchFirst1RowOnly'"执行时间显著的减少了。

图12:为了减少行数而修改一个SELECT语句,用来比较确认性能的受益。

解决的技巧5:使用常量和字面值,如果值在以后的3年中不改变(对于静态查询):

在这个例子中,让我们进行一个基于Win2K平台的DB2测试。当使用主机变量时,DB2优化器无法预测谓词过滤的值。没有这个值,DB2将默认并使用上面列出的默认的过滤器要素。QuestCentralSQL调优将一直显示过滤器要素用以帮助了解有多少列将被过滤。

图12:QuestCentral显示每个谓词的过滤器要素

上一页  2 3 4 5 6 7 

Tags:深入 优化 DB

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