由于计数不同,Teradata性能受到影响

由于计数不同,Teradata性能受到影响,teradata,teradata-sql-assistant,Teradata,Teradata Sql Assistant,查询中没有连接,它是一个简单的查询,具有两个不同的计数。但它消耗的cpu超过9k 我已经采取了必要的统计,但无法减少CPU。请推荐一些减少CPU的好方法 您能告诉我降低CPU影响的最佳方法是什么吗?我认为目标表是一个集合表,因此您的查询占用了大量CPU(重复行消除) 1) 在多集表上测试select查询 insert into multiset_table select count(distinct col1) from source_table. 我相信你的主索引是歪斜的,这是CPU高影响的

查询中没有连接,它是一个简单的查询,具有两个不同的计数。但它消耗的cpu超过9k

我已经采取了必要的统计,但无法减少CPU。请推荐一些减少CPU的好方法


您能告诉我降低CPU影响的最佳方法是什么吗?我认为目标表是一个集合表,因此您的查询占用了大量CPU(重复行消除)

1) 在多集表上测试select查询

insert into multiset_table
select count(distinct col1) from source_table.
我相信你的主索引是歪斜的,这是CPU高影响的原因

2) 确保主索引是唯一的

select hashamp(hashbucket(hashrow(<primary index columns>))), count(*) (bigint) cnt from target_table group by 1 order by 2 desc;
选择hashamp(hashbucket(hashrow())、count(*)(bigint)cnt(从目标_表组中按1顺序乘以2描述);
如果cnt列分布不均匀,则使用更多唯一列更改表的主索引

只有两种情况会导致合并运行缓慢, 1) 目标表是设置表
2) 目标表的主索引严重倾斜

我从未真正擅长阅读Teradata解释,但解释似乎认为实际插入目标表是最慢的部分(解释中的步骤8)。在没有合并到的情况下运行select,看看它是如何执行的。不知道如何在没有合并的情况下运行select?只需在没有插入的情况下运行select,看看CPU的使用情况。