DB2性能调优之使用约束来提高查询优化

以下的文章主要向大家讲述的是DB2性能调优:设计并且配置你的数据库方案之使用约束来提高查询优化,以下
首页 新闻资讯 行业资讯 DB2性能调优之使用约束来提高查询优化

在这里我们主要向大家介绍的是DB2性能调优:设计并且配置你的数据库方案之使用约束来提高查询优化,我们大家都知道有很多数据库设计与配置选项可以影响查询性能。对数据库设计的更多建议参考“ Planning your Physical Database Design ”***实践文章。

DB2性能调优:设计并配置你的数据库之使用约束来提高查询优化

考虑定义的唯一性,检查并参考一致性约束。这些约束提供了语义信息,允许 DB2 优化器重写查询来评估连接,通过连接来降低聚合和 FETCH FIRST N ROWS,去掉不必要的 DISTINCT 选项被和一些其它的优化。当应用程序可以保证它自己的关系时,信息约束也可以被用来检查并参考一致性约束。相同的优化也是可以的。

当更新(插入或删除)行的时候,来自数据库管理器的强制约束可能导致很高的系统开销,尤其在更新很多有一致性约束的行的时候。如果一个应用程序在更新一行之前已经验证的信息,这样使用信息约束比起正常的约束更有效

例如,考虑 2 个表 DAILY_SALES 和 CUSTOMER 。在 CUSTOMER 表中的每一行都有一个唯一的客户键值(CUST_KEY)。 DAILY_SALES 包含一个 CUST_KEY 列并且每一行都引用一个 CUSTOMER 表中的客户键。可以创建一个参考一致性约束来防止在 CUSTOMER 和 DAILY_SALES 之间发生 1:N 的关系。

如果应用程序要强制约束这个关系,可以创建一个信息化的约束。那么下面的查询避免了在 CUSTOMER 和 DAILY_SALES 之间进行连接,因为没有从 CUSTOMER 获取任何列,而且来自于 DAILY_SALES 的每一行都可以在 CUSTOMER 里面找到与之匹配的行,所以查询优化器将自动删除连接

复制

SELECT AMT_SOLD, SALE PRICE, PROD_DESC   FROM DAILY_SALES, PRODUCT, CUSTOMER   WHERE   DAILY_SALES.PROD_KEY = PRODUCT.PRODKEY AND   DAILY_SALES.CUST_KEY = CUSTOMER.CUST_KEY
  • 1.

  • 2.

  • 3.

  • 4.

  • 5.

应用程序必须执行信息约束,否则查询可能返回不正确的结果。在上面的例子中,如果行存在于 DAILY_SALES 中,在 CUSTOMER 表中却找不到相应的客户键,那么上面的查询返回的行可能不正确。

 

DB2性能调优:设计并配置你的数据库之使用约束来提高查询优化

以上的相关内容就是对DB2性能调优:设计并配置你的数据库之使用约束来提高查询优化的介绍,望你能有所收获。

【编辑推荐】

  1. 对DB2数据移动方法的正确解析

  2. 对DB2 增量备份的正确运用描述

  3. DB2数据库进行备份在AIX如何操作?

  4. DB2***SQL性能调节技术经典版

  5. DB2性能调优中易出现的问题有哪些?

13    2010-08-18 09:26:56    DB2性能调优