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 里面找到与之匹配的行,所以查询优化器将自动删除连接

  1. SELECT AMT_SOLD, SALE PRICE, PROD_DESC   
  2. FROM DAILY_SALES, PRODUCT, CUSTOMER   
  3. WHERE   
  4. DAILY_SALES.PROD_KEY = PRODUCT.PRODKEY AND   
  5. DAILY_SALES.CUST_KEY = CUSTOMER.CUST_KEY  

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

 

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

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

【编辑推荐】

  1. 对DB2数据移动方法的正确解析
  2. 对DB2 增量备份的正确运用描述
  3. DB2数据库进行备份在AIX如何操作?
  4. DB2***SQL性能调节技术经典版
  5. DB2性能调优中易出现的问题有哪些?
责任编辑:佚名 来源: 互联网
相关推荐

2010-08-18 09:42:11

DB2性能调优

2010-08-18 09:32:45

DB2优化性能

2011-03-21 09:51:04

DB2性能优化

2010-07-28 09:42:57

DB2性能

2010-08-17 17:29:06

DB2性能优化

2010-08-17 17:23:42

DB2性能

2010-07-30 11:10:24

DB2性能调优

2010-02-04 11:55:27

ibmdwDB2

2010-08-09 15:59:42

2010-08-02 11:11:41

DB2性能调优

2010-07-28 14:07:51

DB2数据库

2012-08-13 10:30:31

IBMdW

2010-08-13 18:00:36

2010-05-28 14:11:57

ibmdw数据库性能调优

2011-03-16 14:16:05

DB2查询

2012-08-01 14:23:35

IBMdW

2010-08-20 14:15:08

DB2性能调优

2010-08-02 17:42:40

DB2性能调优

2010-08-11 12:43:45

DB2数据库调优

2011-05-27 14:28:33

DB2
点赞
收藏

51CTO技术栈公众号