Join 联接查询上的红移性能调整

Join 联接查询上的红移性能调整,join,amazon-redshift,Join,Amazon Redshift,我在以下查询中遇到性能问题: 从表A中选择[COLUMNS]并在[KEYS]上连接表B 如果删除联接,只保留select查询需要几秒钟。加入需要30分钟 表格大小为A(844082912)和B(1540379815)行。 分发键和排序键与连接键等效 查看AWS图表,我看到(附)一个节点在短时间内CPU利用率达到100% 查看系统表(svv_diskusage)时,我不确定我看到了什么(附件),因为它并不表示(据我所知)一个节点的数据是否比其他节点的数据多 如果问题是错误的分配,我怎么看? 是别的

我在以下查询中遇到性能问题:

从表A中选择[COLUMNS]并在[KEYS]上连接表B

如果删除联接,只保留select查询需要几秒钟。加入需要30分钟

表格大小为A(844082912)和B(1540379815)行。 分发键和排序键与连接键等效

查看AWS图表,我看到(附)一个节点在短时间内CPU利用率达到100%

查看系统表(svv_diskusage)时,我不确定我看到了什么(附件),因为它并不表示(据我所知)一个节点的数据是否比其他节点的数据多

如果问题是错误的分配,我怎么看? 是别的吗

这里(不均匀分布)您可以看到一个相同图形样式的示例:一个节点比其他节点工作更努力,这表明您的数据分布不均匀

关于svv_diskusage,它描述了存储在每个片中的值。如果片的使用相对不均匀,则表示分发密钥不正确。请尝试以下查询,以获得更高的抽象度,而不是切片:

select owner, host, diskno, used, capacity,
(used-tossed)/capacity::numeric *100 as pctused 
from stv_partitions order by owner;
set search_path to '$user', 'public', 'ic';
select * from pg_table_def where tablename = '{TableNameHere}';
如果你想了解更多关于这个话题的信息,我想这篇文章(免责声明——我写的)可能会很有趣: