【问题标题】:Teradata - Primary Index Fields and PerformanceTeradata - 主索引字段和性能
【发布时间】:2015-06-30 03:16:53
【问题描述】:

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

我可以通过添加更多字段使主索引更加独特,但我想知道添加更多列是否存在收益递减点?

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

提前致谢。

【问题讨论】:

    标签: indexing teradata


    【解决方案1】:

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

    1. 访问:选择访问次数较多的列(或列组合)。在最好的情况下用于连接(即 FK)加上可能用于基于相等性的 WHERE 条件

    2. 分布:表格不应过度倾斜(much 可能对不同的客户有不同的定义)。通常偏差高达 10-30%(此表最大大小的 AMP 的数据比平均值多 10-30%)是可以接受的。查询 dbc.TableSizeV 以获取每个 AMP 上用于表的实际 Permspace。

    3. 波动性:PI 应该是稳定的,而不是大量更新。

    表格的主键完全适合三分之二,但可能不适合最重要的一个。

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

    创建易失性表的时间应该几乎不会因不同的 PI 而有所不同(除非有偏差),我希望更多独特的 PI 更有效率。

    【讨论】:

      【解决方案2】:

      如果您的表在客户级别是唯一的,那么添加日期字段不会使其不再是唯一的,这是我错误的想法吗?

      【讨论】:

        猜你喜欢
        • 2013-08-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-08-13
        • 1970-01-01
        • 2012-05-12
        相关资源
        最近更新 更多