【问题标题】:How multilevel partitioned primary indexes(MLPPIs) may improve the performance of inserts in teradata?多级分区主索引 (MLPPI) 如何提高 teradata 中插入的性能?
【发布时间】:2016-08-13 05:24:52
【问题描述】:

我一直在寻找 MLPPI 影响插入性能的一些证据。根据link,实际上并没有说明原因:

MLPPI——提供显着提高性能的机会 某些查询和大容量插入、更新和删除 操作。

That article 构建了一些有趣的案例,这些案例是如何使用这些索引来改善加载的,但它作为证据看起来并不可靠。

此外,我进行了自己的调查: 我有一张1200万的桌子。具有date 类型字段的行,因此我创建了 2 个新的空表,在该日期类型字段上具有和不具有分区,但除了分区之外几乎具有与原始表相同的结构。然后我把这 1200 万个都塞给了他们。解释给出了完全相同的结果 3 分钟 +。人为地尝试通过显式指向日期将所有这 1200 万行插入一个分区并没有改变时间。

所以我的问题是:MLPPI 可以提高插入的性能吗?为什么?

【问题讨论】:

    标签: sql teradata database-performance query-performance


    【解决方案1】:

    您应该认为这篇文章是可靠的,Paul Sinclair 是 MLPPI 的发布架构师 :)

    当您插入一个空表时,您几乎不会注意到有或没有分区的任何区别。事实上,如果源表具有相同的 PI 并且由于重新排序而未分区,则 PPI 可能会更慢。

    但是当您插入到填充表(或更新)并且所有行都转到几个分区时,它会更快,因为您跳过未使用的分区并读取(可能写入)更少的数据块,即插入(或更新)的数量) 每块的行数要高得多。

    如果您插入到一个空分区,它会使用 FastPath 处理(如空表)并避免 Transient Journaling

    【讨论】:

    猜你喜欢
    • 2011-11-08
    • 1970-01-01
    • 1970-01-01
    • 2011-09-17
    • 1970-01-01
    • 2017-08-12
    • 1970-01-01
    • 2021-05-21
    • 1970-01-01
    相关资源
    最近更新 更多