Amazon Redshift性能优化与查询调优全解析
1. 自动分析(Auto Analyze)
自动分析工作程序会生成或更新表统计元数据,这些元数据用于选择最优查询执行计划,以提升查询性能。它会在数据仓库闲置超过10分钟时运行,并且采用增量式工作方式。用户发出的分析命令会自动跳过统计信息最新的表。
在典型的数据仓库表中,SELECT子句中使用的列较多,而用于JOIN和FILTER的列相对较少。可以使用 analyze 命令的 PREDICATE COLUMNS 选项,仅分析在查询中用作谓词的列,如分布键列、排序键列以及在JOIN、FILTER或GROUP BY子句中使用的列。该选项通过收集对查询性能影响最大的列的统计信息,能带来最大的收益。如果没有列被标记为谓词列(例如表尚未被查询过),则会分析所有列,因此这是一个默认情况下非常安全的选项。
使用 CREATE [TEMP] TABLE AS 或 SELECT INTO 命令创建的表,Amazon Redshift会自动对其运行分析。默认的分析阈值是行更改的10%,但你可以在会话级别设置不同的分析阈值来微调此行为。
在ETL过程中,如果后续步骤能从最新的统计信息中受益,或者由于数据仓库使用繁忙,Amazon Redshift没有进行自动分析(即没有闲置时间来运行自动分析后台任务),你可能需要显式地分析表。
2. 自动物化视图(Auto Materialized Views,AutoMV)
自动物化视图功能基于内置的机器学习算法,识别能从新物化视图
超级会员免费看
订阅专栏 解锁全文
1151

被折叠的 条评论
为什么被折叠?



