我尝试优化具有不同PI的两个表之间的联接
Account表有一个概念性外键(概念性,因为它没有由表声明强制执行),它引用了帐户的客户所有者(CUSTOMER_FK)。客户可以拥有多个帐户,但每个帐户只有一个客户。
我试图将客户的属性带到帐户,以便后处理业务规则。目前,我正在使用以下步骤加入这两个表:
1-按信息引用日期提取子集(在表上过滤),并通过Customer Foreign Key重新索引结果。这样,两个表都通过AMP上的相同密钥分发
2-在两个表(CUSTOMER_SK和CUSTOMER_FK)上的Customer Key上加入表,在ACCOUNT_SK上重新索引结果。
事实上,我有几个拥有数百万账户的客户(<10)。因此,重新编制索引的帐户表非常偏斜。原始表的偏差因子(在帐户代理上编入索引)为1,而在重新编制索引的表上为98,而且我经常用完假脱机空间(即使查询运行起来,也会影响整个服务器)性能)
有没有办法优化此查询?
编辑:
由于我的雇主的信息安全政策,我无法发布确切的查询(我只能获得在通用表单上分享问题的许可)