歪斜的teradata加入(假脱机空间问题)

时间:2016-06-17 18:02:45

标签: sql join teradata

我尝试优化具有不同PI的两个表之间的联接

  • 客户表:由客户代理键(CUSTOMER_SK)索引
  • 帐户表:按帐户代理键(ACCOUNT_SK)
  • 编制索引

Account表有一个概念性外键(概念性,因为它没有由表声明强制执行),它引用了帐户的客户所有者(CUSTOMER_FK)。客户可以拥有多个帐户,但每个帐户只有一个客户。

我试图将客户的属性带到帐户,以便后处理业务规则。目前,我正在使用以下步骤加入这两个表:

1-按信息引用日期提取子集(在表上过滤),并通过Customer Foreign Key重新索引结果。这样,两个表都通过AMP上的相同密钥分发

2-在两个表(CUSTOMER_SK和CUSTOMER_FK)上的Customer Key上加入表,在ACCOUNT_SK上重新索引结果。

事实上,我有几个拥有数百万账户的客户(<10)。因此,重新编制索引的帐户表非常偏斜。原始表的偏差因子(在帐户代理上编入索引)为1,而在重新编制索引的表上为98,而且我经常用完假脱机空间(即使查询运行起来,也会影响整个服务器)性能)

有没有办法优化此查询?

编辑:

由于我的雇主的信息安全政策,我无法发布确切的查询(我只能获得在通用表单上分享问题的许可)

0 个答案:

没有答案