在Teradata中使用varchar列作为分区以加速截断
我有一个Teradata表和两列在Teradata中使用varchar列作为分区以加速截断,teradata,Teradata,我有一个Teradata表和两列company\u name varchar(500)和case\u name varchar(500) 这两个分区的值限制在数百个级别。但它不是由我控制的。我不能预先定义它们的值 截断指定的公司名称和案例名称的所有数据是一项日常操作。所以我想使用这两列作为分区 是否支持这样做?如果在TD中按分区截断数据会有帮助吗?如果不支持这一点。通过两个varchar列截断数据是否有最佳做法?当(主要)基于访问这些列时,其中company\u name='foo'和case\
company\u name varchar(500)
和case\u name varchar(500)
这两个分区的值限制在数百个级别。但它不是由我控制的。我不能预先定义它们的值
截断指定的公司名称
和案例名称
的所有数据是一项日常操作。所以我想使用这两列作为分区
是否支持这样做?如果在TD中按分区截断数据会有帮助吗?如果不支持这一点。通过两个varchar列截断数据是否有最佳做法?当(主要)基于
访问这些列时,其中company\u name='foo'和case\u name='bar'
可以应用这样的计算
PRIMARY INDEX ( PIcol)
PARTITION BY
Range_N(HashBucket(HashRow(company_name,case_name)) MOD 65533 BETWEEN 0 AND 65532 EACH 1)
从company\u name='foo'和case\u name='bar'的位置删除将访问单个分区,但这不是一个快速路径删除,它将是暂时的日志记录。当对这些列的访问(主要)基于where company\u name='foo'和case\u name='bar'
时,您可以应用这样的计算
PRIMARY INDEX ( PIcol)
PARTITION BY
Range_N(HashBucket(HashRow(company_name,case_name)) MOD 65533 BETWEEN 0 AND 65532 EACH 1)
从company_name='foo'和case_name='bar'中删除delete将访问单个分区,但它不是FastPath delete,它将是临时日志。您是否仅在这些列上使用相等值访问该表?@dnoeth它是一个因子表,大约有100个其他列您是否仅在这些列上使用相等值访问该表?@dnoeth它是一个因子表,大约有100个其他列