在 Amazon Redshift 中,执行计划对应于查询优化器执行给定 SQL 查询所采取的步骤。在分析执行计划时,每个步骤通常对应于 SQL 语句的特定部分以及优化器打算如何处理它。下面详细介绍了 SQL 语句的每个部分如何与 Amazon Redshift 中的执行计划相对应,以及一些优化策略。
1.SQL 语句组件及其对应的执行计划步骤
以下是 SQL 查询的主要组件如何映射到执行计划:
a. SELECT
- 执行计划步骤:“Scan”
- 子句 **SELECT ** 指定要检索的列。执行计划包括从相关表或索引中提取数据的操作。
b. FROM (表或子查询)
- 执行计划步骤:“Seq Scan”、“Index Scan” 或 “Hash Join”
- 执行计划显示数据的访问方式。它可以是顺序扫描(即读取整个表)或索引扫描(即使用索引访问特定数据)。
- 如果是子查询或联接,则计划可能会显示 嵌套循环联接、哈希联接 或 合并联接。
c. WHERE (筛选)
- 执行计划步骤:“filter”
- 这对应于应用 WHERE 子句中指定的任何筛选条件。执行计划可能指示过滤器是提前应用(例如,在扫描期