Teradata - 主要索引字段和性能

时间:2015-05-19 20:34:42

标签: indexing teradata

我有一个非常大的易失性表。我将主索引设置为customer_id,这是表中最独特的列。但是,通过将其与customer_id,effective_dt和group_id相结合,我可以使主索引更加独特。

通过添加更多字段,我可以使主索引更加独特,但我想知道是否有一个增加更多列的回报减少点?

另外,我注意到,随着我添加唯一主索引的列数越多,创建易失性表所需的时间就越长。只是我的观察,但我不确定这是否属实?

提前致谢。

2 个答案:

答案 0 :(得分:1)

基本上,表格的PI应基于以下标准(按重要性排序):

  1. 访问:选择经常访问的列(或列组合)。用于连接的最佳情况(即FK)加上可能用于基于相等的WHERE条件

  2. 分发:表格不应过分偏差(很多可能会因不同客户而有所不同)。通常偏差高达10-30%(此表的最大尺寸的AMP比平均值多10-30%)是可以接受的。查询dbc.TableSizeV以获取表的每个AMP上使用的实际Permspace。

  3. Volatility :PI应该稳定,而不是大量更新。

  4. 桌子的主键完全适合三分之二,但可能不适合最重要的一个。

    在您的情况下customer_id听起来像一个将加入并具有良好分布的列,因此它可能比向PI添加更多列更好。

    创建易失性表的时间几乎不同于不同的PI(除非有一个偏差),我希望更多独特的PI更高效。

答案 1 :(得分:0)

我认为如果您的表在客户级别是唯一的,那么我是错误的,那么添加日期字段也不会让它变得独一无二了吗?