IBM DB2中索引中的聚合函数

时间:2012-11-29 16:39:18

标签: sql indexing db2

有没有办法预先汇总聚合函数的结果(f.i. count())并将其存储在索引中?

背景是:我想加快count()查询。那样:

从TE123中选择计数(用户) 其中region ='A';

将受到类似索引的支持 区域数(用户) A 548 E 458

我知道MQT也可以解决这个问题。但是,在这种情况下,不可能使用MQT,因为我们使用ORM的类型,我们不想在MQT上定义实体。

我只是稍微记得 - 一位DBA告诉我 - DB2 V10计划有这样的功能。

1 个答案:

答案 0 :(得分:0)

即使没有重写查询,MQT仍可能会有所帮助。

  

物化查询表可以显着提高性能   查询,尤其是复杂的查询。如果优化器确定了   可以使用MQT(查询)来解析查询或查询的一部分   可能会被重写以利用MQT。

SOURCE

对于z / OS:

  

使用称为自动查询重写的进程,DB2®可以识别何时   它可以透明地重写提交的查询以使用存储的   导致具体化的查询表。通过查询物化   查询表而不是计算底层基础的结果   表,DB2可以更多地处理一些复杂的查询   有效。

SOURCE

对于Linux / Unix / Windows:

  

MQT的知识已集成到SQL和XQuery编译器中。在   编译器,查询重写阶段和优化器匹配查询   使用MQT并确定是否在查询中替换MQT   访问基表。如果使用MQT,解释工具可以   提供有关选择了哪个MQT的信息。在这种情况下,用户   需要对基表的访问权限,而不是重新路由的MQT。

SOURCE