在 SQL 调优中,针对慢 SQL 的分析步骤如下:

    1. 通过全局 SQL 审计表 (g)v$sql_audit、 SQL Trace 和计划缓存视图查看 SQL 执行信息,初步查找 SQL 请求的流程中导致耗时或消耗资源(如内存、磁盘 IO 等)的 SQL。请参见示例 查询某段时间内执行时间排名 TOP N 的请求

    2. 单条 SQL 的执行性能往往与该 SQL 的执行计划相关,因此,执行计划的分析是最重要的手段。通过执行 EXPALIN 命令查看优化器针对给定 SQL 生成的逻辑执行计划,确定可能的调优方向。请参见示例 查看执行计划形状并做分析

      关于执行计划的详细信息请参考 SQL 执行计划简介

    3. 找到具体的慢 SQL,为了使某些 SQL 的执行时间或资源消耗符合预期,常见的优化方式如下:

    • 对 SQL 做等价改写生成最佳执行计划,详细信息请参见 查询改写

    • 针对多表访问的 SQL,还需要关注多表间的联接问题,通过优化访问路径、联接顺序和联接算法等实现查询优化。详细信息请参见 访问路径联接算法联接顺序