在 Teradata 中使用 varchar 列作为分区来加速截断

Using varchar column as partition in Teradata to speedup truncate

我有一个 Teradata table 和两列 company_name varchar(500)case_name varchar(500)

两个分区的值都限制在百级。但它不受我控制。而且我无法预先定义一组它们的值。

截断指定company_namecase_name的所有数据是日常操作。所以我想用这两列作为分区。

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

当对这些列的访问(主要)基于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)

A delete from where company_name = 'foo' and case_name = 'bar' 将访问单个分区,但它不是 FastPath 删除,它将被临时记录。