Redshift 更改查询
Posted
技术标签:
【中文标题】Redshift 更改查询【英文标题】:Redshift Alter query 【发布时间】:2020-09-29 11:11:11 【问题描述】:在下面的查询中,我们在 Redshift 中使用为拆分函数添加新列。我想知道,这是最好的方式(在性能方面)还是其他方式?请告诉我 。因为我在这个查询中遇到了性能问题
ALTER TABLE schemaname.test ADD COLUMN WASD_3 VARCHAR DEFAULT NULL;
UPDATE schemaname.test
SET WASD_3=SPLIT_PART(details, '_', 1)::VARCHAR
【问题讨论】:
表格有多少行和多少列? 300,000 条记录和 20 列 这不是一个巨大的数字(例如数百万或数十亿),所以我建议您做一些时序测试,看看您是否对UPDATE
+ VACUUM
满意,或者您是否需要增加额外的努力以选择不同的表格。
【参考方案1】:
UPDATE
命令在 Amazon Redshift 中的效率非常低,因为整个现有行都被标记为“已删除”,并且在行存储块的末尾附加了一个新行。这意味着数据在表被清理之前是未排序的。
如果表很大,将数据选择到新表中然后将数据复制回原始表或重命名表会更有效。
【讨论】:
以上是关于Redshift 更改查询的主要内容,如果未能解决你的问题,请参考以下文章
Redshift WLM:“最终队列可能不包含用户组或查询组”
在 REDSHIFT 中的 ALTER 语句中连接字符串(语法错误)