Oracle分析SQL执行调优

-- 步骤一 执行分析
EXPLAIN PLAN FOR '需要分析的sql语句';

-- 步骤二 查看结果

SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY);

说明信息:

ID(Operation ID):

意义:操作的唯一标识符,用于指定执行计划中每个操作的顺序。
示例:1, 2, 3, ...


Operation(操作):

意义:描述执行计划中每个操作的类型。

  1. INDEX UNIQUE SCAN:通过唯一索引直接获取单一行,效率高。
  2. INDEX RANGE SCAN:通过索引的范围扫描,效率相对较高。
  3. TABLE ACCESS BY INDEX ROWID:通过索引的 ROWID 获取表中的行,效率较高。
  4. NESTED LOOPS:嵌套循环连接,适用于小数据集,效率较高。
  5. HASH JOIN SEMI:哈希连接的半连接操作,用于检查左表中的行是否在右表中存在,适用于特定场景。
  6. INDEX FULL SCAN:通过索引进行全表扫描,可能效率较高,特别是对小表。
  7. HASH JOIN:哈希连接,适用于大型数据集,但可能产生大量内存开销。
  8. FILTER:在最后的结果集上进一步筛选数据,可能是由于未使用索引而导致的。
  9. MERGE JOIN:合并连接,可能对排序有较高要求,效率较低。
  10. TABLE ACCESS FULL:对整个表进行全表扫描,可能效率较低,特别是对大表。


Name(名称):

意义:操作所涉及的表、索引或其他数据库对象的名称。
示例:EMPLOYEE, INDEX_NAME, ...


Rows(行数):

意义:操作处理的行数,表示操作返回的记录数。
示例:100, 500, ...


Cost(成本):

意义:优化器估算的执行成本,用于确定执行计划的最佳顺序。
示例:1000, 2000, ...


Bytes(字节数):

意义:操作传输的数据量,可用于评估查询的数据传输开销。
示例:102400, 204800, ...

你可能感兴趣的:(oracle,sql,数据库)