参考《SQL*Plus®User's Guide and Reference》
本章提供了关于如何调优SQL*Plus以获得更好的性能的信息。
1,关于Tracing语句
可以自动获取有关SQL优化器使用的执行路径报告和SQL语句的执行统计信息的报告。该报告是在成功执行DML(即select、delete、update和insert)语句之后生成的。它对于监视和调优这些语句的性能很有用。如果要使用AUTOTRACE特性,需要系统已经创建PLAN_TABLE表,也可以手动创建;然后使用的账号需要有PLUSTRACE角色的权限。
1.1,控制Autotrace报告
通过设置AUTOTRACE变量来控制报告。
设置 | 结果 |
SET AUTOTRACE OFF | 不生成 AUTOTRACE报告,默认值。只打印查询结果。 |
SET AUTOTRACE ON EXPLAIN | 报告只显示优化器执行路径。还会打印查询结果。 |
SET AUTOTRACE ON STATISTICS | 报告只显示SQL语句执行的统计信息。还会打印查询结果。 |
SET AUTOTRACE ON | 报告显示优化器执行路径和SQL语句执行的统计信息。还会打印查询结果。 |
SET AUTOTRACE TRACEONLY | 类似于SET AUTOTRACE ON的设置,但不打印查询结果。如果启用了STATISTICS,查询数据仍然会被获取,但不会打印。 |
注意:SQL*Plus AUTOTRACE不支持使用ALTER SESSION SET CONTAINER操作切换容器,在这种情况下收集的统计数据可能不一致。
例:HR账号使用AUTOTRACE功能前需要创建PLAN_TABLE表和获取PLUSTRACE角色权限。
1)创建PLAN_TABLE表
CONNECT HR
@$ORACLE_HOME/rdbms/admin/utlxplan.sql
2)创建PLUSTRACE角色
CONNECT / AS SYSDBA
@$ORACLE_HOME/sqlplus/admin/plustrce.sql
3) PLUSTRACE角色授权
CONNECT / AS SYSDBA
GRANT PLUSTRACE TO HR;