0

我正在尝试调整 Teradata 中的查询。它非常大,所以我在大纲下方给出:

SEL column_1, column_2......column_20, sum(column_21), sum(column_22),.....sum(column_30)
from table_a a
inner join table_b b
on conditions...
group by column_1, ...,column_20;

我正在尝试调整这个。它在小组中遇到了性能障碍。表 A 和 B 很大(超过 20 亿条记录)。

我尝试了以下选项,但没有一个能提高性能:

1)收集所有必要的统计数据

2) 在表 A 和 B 的列上创建 JI

3) 在列和表 A 和 B 的总和上创建 AJI

4) 在每个表上为 group by 中涉及的列创建一个 SI。

有人可以建议如何进一步进行吗?

4

1 回答 1

2

很难说什么,没有任何细节:

  • 查询(它们总是相同的,还是总是不同的 WHERE )
  • A 和 B 的结构(主索引/分区)
  • 执行计划
  • 执行日志(查看瓶颈在哪里)

但是如果我们假设这个单个查询每次都完全相同,然后在执行期间创建和使用 AJI,那么我能想到的唯一改进就是尝试调整 JI 的主索引,因此它在 amp 之间的分布将是尽可能统一

(顺便说一句,如果使用 AJI,那么第 2 步和第 4 步将浪费您的时间和数据库空间)

于 2012-02-15T21:45:51.723 回答