我在以下查询中遇到性能问题:
从[表格]中选择[列]在[键]
上连接表B.
如果我删除了连接,只留下选择查询需要几秒钟。通过加入, 30分钟。
表格大小为A(844,082,912)&行(1,540,379,815)行。 分发和排序键等同于连接KEYS。
查看AWS图表,我看到(附加)一个节点在短时间内具有100%的CPU利用率。
查看系统表(svv_diskusage)我不确定我看到了什么(附件),因为它没有表明(据我所知)一个节点是否有比其他节点多得多的数据。
如果问题是分布错误,我怎么能看到它? 是别的吗?
答案 0 :(得分:1)
此处https://aws.amazon.com/articles/8341516668711341(不均匀分布)您可以看到相同图形样式的示例:一个节点比其他节点更加努力,这表明您的数据分布不均匀。
关于svv_diskusage,它描述了存储在每个切片中的值。如果切片没有相对均匀地使用,那么这是错误分发密钥的指示符。尝试以下查询以获得更高的分布amooung节点而不是切片的抽象:
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}';