#SET AUTOTRACE

# 通用描述

SET AUTOTRACE为在yasql(YashanDB的SQL客户端工具)中实现的命令,用于生成trace报告,得到DML类型SQL语句(SELECT/INSERT/UPDATE/DELETE)的执行计划,以及执行计划实际产生的资源消耗和执行时间等信息。

当开启AUTOTRACE后,在客户端执行的DML类SQL语句,除输出SQL结果外,还将输出trace报告中的信息,信息内容依据AUTOTRACE的开启选项决定。

AUTOTRACE是常见的SQL调优工具,可在调优手册中获取更多信息。

# 语句定义

set autotrace::=

syntax
SET AUTOT RACE ON OFF TRACE ONLY EXP LAIN STAT ISTICS

# set autotrace off

默认模式,不生成trace报告。

示例

SET AUTOTRACE OFF;

# set autotrace on explain

生成trace报告,且输出语句的执行结果和执行计划。

开启此设置后,后续执行的DML语句将输出执行计划,且执行计划中新增如下信息:

  • A-ROWS:实际执行行数
  • A-TIME:实际执行时间
  • LOOP:数据提取次数
  • MEMORY:算子占用的内存大小
  • DISK:算子占用的磁盘空间大小

上述新增相比的是在开启设置之前由EXPLAIN语句输出的内容,且在开启设置之后执行EXPLAIN语句将同样新增上述信息。

示例

SET AUTOTRACE ON EXPLAIN;

# set autotrace on statistics

生成trace报告,且输出语句的执行结果和SQL执行统计信息(统计信息仅在STATISTICS_LEVEL参数为'ALL'模式下记录)。

开启此设置后,后续执行的DML语句将输出SQL执行所产生的redo日志大小、物理读、一致性读和递归调用等资源消耗数据。

示例

SET AUTOTRACE ON STATISTICS;

# set autotrace on

生成trace报告,且输出语句的执行结果、执行计划和执行统计信息。

示例

SET AUTOTRACE ON;

# set autotrace traceonly

生成trace报告,且不输出语句的执行结果,只输出语句的执行计划和执行统计信息。

示例

SET AUTOTRACE TRACEONLY;