Oracle EXPLAIN PLAN 是用于生成 SQL 语句执行计划的命令帮助分析查询性能而不实际执行 SQL。1、怎么生成和查看执行计划基本使用方法在 SQL 语句前加上EXPLAIN PLAN FOR执行后计划会存入 PLAN_TABLE 表。示例EXPLAIN PLAN FOR SELECT * FROM employees WHERE department_id 10;执行后显示已解释表示计划已生成。查看执行计划的两种方式推荐方式使用SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY());以格式化形式展示。直接查询SELECT * FROM plan_table;查看原始数据。使用 AUTOTRACE 快速查看在 SQL*Plus 中设置SET AUTOTRACE ON EXPLAIN可直接显示执行计划。SET AUTOTRACE ON同时显示执行计划和统计信息。SET AUTOTRACE TRACEONLY只显示计划和统计不显示查询结果。2、执行计划怎么解读执行顺序判断遵循从右向左、从上到下的原则缩进最大的行最先执行。同一级别中靠上的节点优先执行。有子节点时先从最靠右的子节点开始。关键字段含义ID执行步骤编号表示树形结构中的层级关系。Operation操作类型如全表扫描 (TABLE ACCESS FULL)、索引扫描 (INDEX RANGE SCAN)、连接操作 (HASH JOIN/NESTED LOOP)。Cost执行成本数值越低表示优化器认为该计划越高效。Rows优化器预估的返回行数依赖统计信息准确性。Object_Name操作涉及的表名或索引名。常见操作类型表访问全表扫描适合小表索引扫描适合大表精准查询。连接操作嵌套循环适合小表连接哈希连接适合大数据集。子查询相关子查询可能性能较差可考虑改写为 JOIN。使用时的注意事项执行计划是预估的EXPLAIN PLAN 不会实际执行 SQL生成的计划可能与实际执行有出入。适合测试敏感操作 (如 DDL/DML) 而不影响生产数据。实际执行可用DBMS_XPLAN.DISPLAY_CURSOR查看已执行 SQL 的真实计划。依赖统计信息执行计划准确性高度依赖表和索引的统计信息。统计信息包括行数、块数、直方图等。统计信息过时可能导致优化器选择不佳的执行计划。权限要求需要对输出表有插入权限对 SQL 涉及的表有访问权限。默认输出表为当前 schema 下的 PLAN_TABLE。可使用SET STATEMENT_ID区分不同执行计划。
Oracle EXPLAIN PLAN
发布时间:2026/6/17 12:04:32
Oracle EXPLAIN PLAN 是用于生成 SQL 语句执行计划的命令帮助分析查询性能而不实际执行 SQL。1、怎么生成和查看执行计划基本使用方法在 SQL 语句前加上EXPLAIN PLAN FOR执行后计划会存入 PLAN_TABLE 表。示例EXPLAIN PLAN FOR SELECT * FROM employees WHERE department_id 10;执行后显示已解释表示计划已生成。查看执行计划的两种方式推荐方式使用SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY());以格式化形式展示。直接查询SELECT * FROM plan_table;查看原始数据。使用 AUTOTRACE 快速查看在 SQL*Plus 中设置SET AUTOTRACE ON EXPLAIN可直接显示执行计划。SET AUTOTRACE ON同时显示执行计划和统计信息。SET AUTOTRACE TRACEONLY只显示计划和统计不显示查询结果。2、执行计划怎么解读执行顺序判断遵循从右向左、从上到下的原则缩进最大的行最先执行。同一级别中靠上的节点优先执行。有子节点时先从最靠右的子节点开始。关键字段含义ID执行步骤编号表示树形结构中的层级关系。Operation操作类型如全表扫描 (TABLE ACCESS FULL)、索引扫描 (INDEX RANGE SCAN)、连接操作 (HASH JOIN/NESTED LOOP)。Cost执行成本数值越低表示优化器认为该计划越高效。Rows优化器预估的返回行数依赖统计信息准确性。Object_Name操作涉及的表名或索引名。常见操作类型表访问全表扫描适合小表索引扫描适合大表精准查询。连接操作嵌套循环适合小表连接哈希连接适合大数据集。子查询相关子查询可能性能较差可考虑改写为 JOIN。使用时的注意事项执行计划是预估的EXPLAIN PLAN 不会实际执行 SQL生成的计划可能与实际执行有出入。适合测试敏感操作 (如 DDL/DML) 而不影响生产数据。实际执行可用DBMS_XPLAN.DISPLAY_CURSOR查看已执行 SQL 的真实计划。依赖统计信息执行计划准确性高度依赖表和索引的统计信息。统计信息包括行数、块数、直方图等。统计信息过时可能导致优化器选择不佳的执行计划。权限要求需要对输出表有插入权限对 SQL 涉及的表有访问权限。默认输出表为当前 schema 下的 PLAN_TABLE。可使用SET STATEMENT_ID区分不同执行计划。