使用varchar列作为Teradata中的分区以加速截断

时间:2018-12-06 12:40:46

标签: teradata

我有一个Teradata表和两列describe('my test suite', () => { afterEach(() => { document.querySelector(SOME CLASS OR ID).innerHTML = '' }) }) company_name varchar(500)

两个分区的值限制在数百个级别。但这不是我控制的。而且我无法预先定义它们的值。

这是日常操作,用于截断指定的case_name varchar(500)company_name的所有数据。所以我想将这两列用作分区。

是否支持这样做?如果在TD中按分区截断数据是否有帮助?如果不支持。是否有最佳实践来通过两个varchar列截断数据?

1 个答案:

答案 0 :(得分:2)

(主要)基于where company_name = 'foo' and case_name = 'bar'访问这些列时,您可以应用类似的计算

PRIMARY INDEX ( PIcol)
PARTITION BY
   Range_N(HashBucket(HashRow(company_name,case_name)) MOD 65533 BETWEEN 0 AND 65532 EACH 1)

delete from where company_name = 'foo' and case_name = 'bar'将访问一个分区,但这不是FastPath删除,而是临时日志。