0

我有一个查询如下,

SELECT SUM(SOLD_QTY_CNT) AS QUANTITY, DENOM_AM, SUM(LIN_AM) AS LINE_AMT,
    LIN_AM AS O_LINE_AMT, ORD_DTL_ID
    FROM MyTable    GROUP BY ORD_DTL_ID, LIN_AM, DENOM_AM
    WITH UR;

我的查询是优化/更好的方式来重写这个查询。因为它有一个函数 SUM 所以希望为所有涉及的列创建索引不会有帮助。

当我采用 aove 的访问计划时说查询它是close to 70k..因为使用的表是非常大的表。

所以请提出一些优化查询的方法。

TIA。

4

2 回答 2

1

尝试运行db2advis 工具

    db2advis -d <database-name> -s "<your above query, try entering in one line>"

然后,这将建议您创建索引并删除不需要的索引。遵循导致它的建议,应该这样做。

于 2013-05-22T14:51:47.793 回答
1

如果您的服务器是 DB2 for i,您可能会考虑使用Encoded Vector Index。但是,根据查询中的名称猜测,对于这种方法,复合键的基数可能相当高。

于 2013-10-05T22:21:01.397 回答