2014-09-03 57 views
1

我的FACT表中存在一个问题。 通过相同的工作, 我调用一个过程来加载这个FACT表,然后第二个过程来收集这个事实表的统计信息。加入索引或收集Teradata中更好的统计信息

作为新需求的一部分,我需要创建一个连接索引,其中还包括上述事实表。

我相信只要有任何涉及的表有变化,就会执行连接索引。那么在上述情况下会发生什么?。我的收集统计过程等待连接索引执行完成。因为收集统计数据的simulataneous次数和joinindex

问候, Anoop

回答

0

争连接索引会自动由Teradata数据保持在ETL过程中添加,更改或在引用的表(一个或多个)删除数据联合指数。如果您将DDL更改应用于影响参与连接索引的列的连接索引中引用的表,或者在删除连接索引中引用的表之前,则必须删除连接索引。

连接索引或事实表上的统计信息收集应保留到事实表的ETL已完成或定期统计维护期内。无论您是在每个ETL过程之后收集统计信息,还是仅在常规统计维护期间收集统计信息,都取决于每个ETL周期中事实表中有多少数据发生变化。我猜测如果创建连接索引以提高查询事实表的性能,那么除非此ETL周期是每月或每季度ETL过程,否则可能不需要在每个ETL周期后收集同一事实表上的统计信息。 JI和事实表上的统计信息收集可以并行运行。收集统计所需的锁不高于READ。 (它实际上可能是一个ACCESS锁。)

根据您的Teradata版本,您可以利用THRESHOLD选项来优化器确定是否需要收集统计信息。我相信这被包含在Teradata 14中,作为Teradata 14.10中引入的自动统计维护的垫脚石。

+1

对于AJI,我会补充说,对于较大的更新/插入,建议删除AJI并在更新/插入完成后重新创建它。事实上,放弃AJI,执行ETL,然后重新创建AJI可能会更快。 – Andrew 2014-09-03 14:43:05

+0

好点。针对目标表的某些活动可能会受到AJI的阻碍。这是一个平衡的行为,因为某些环境重建AJI本身可能需要几个小时。 :) – 2014-09-03 14:44:52

相关问题