set autotrace常用操作

SQL> set autotrace
用法: SET AUTOT[RACE] {OFF | ON | TRACE[ONLY]} [EXP[LAIN]] [STAT[ISTICS]]




--用法1:查看执行计划、统计信息并且返回sql结果集
set autotrace on; 


select count(*) from t;  
  
  COUNT(*)  
----------  
     50295  
  
已用时间:  00: 00: 00.01  
  
执行计划  
----------------------------------------------------------  
Plan hash value: 2966233522  
  
-------------------------------------------------------------------  
| Id  | Operation          | Name | Rows  | Cost (%CPU)| Time     |  
-------------------------------------------------------------------  
|   0 | SELECT STATEMENT   |      |     1 |   159   (2)| 00:00:02 |  
|   1 |  SORT AGGREGATE    |      |     1 |            |          |  
|   2 |   TABLE ACCESS FULL| T    | 50295 |   159   (2)| 00:00:02 |  
-------------------------------------------------------------------  
  
  
统计信息  
----------------------------------------------------------  
          0  recursive calls  
          0  db block gets  
          0  consistent gets  
          0  physical reads  
          0  redo size  
        509  bytes sent via SQL*Net to client  
        211  bytes received via SQL*Net from client  
          2  SQL*Net roundtrips to/from client  
          1  sorts (memory)  
          0  sorts (disk)  
          1  rows processed  








---方法2:查看执行计划、统计信息不返回sql结果集:


SQL> set autotrace traceonly;  
SQL> select * from t2;  
  
已选择402344行。  
  


  
执行计划  
----------------------------------------------------------  
Plan hash value: 1513984157  
  
--------------------------------------------------------------------------  
| Id  | Operation         | Name | Rows  | Bytes | Cost (%CPU)| Time     |  
--------------------------------------------------------------------------  
|   0 | SELECT STATEMENT  |      |   402K|    33M|  1240   (3)| 00:00:15 |  
|   1 |  TABLE ACCESS FULL| T2   |   402K|    33M|  1240   (3)| 00:00:15 |  
--------------------------------------------------------------------------  
  
  
统计信息  
----------------------------------------------------------  
          0  recursive calls  
          0  db block gets  
          0  consistent gets  
          0  physical reads  
          0  redo size  
        911  bytes sent via SQL*Net to client  
        190  bytes received via SQL*Net from client  
          2  SQL*Net roundtrips to/from client  
          1  sorts (memory)  
          0  sorts (disk)  
     402344  rows processed  






---方法3:只看执行计划不返回sql结果集:


QL> set autotrace traceonly explain;  
SQL> select * from t;  
已用时间:  00: 00: 00.01  
  
执行计划  
----------------------------------------------------------  
Plan hash value: 1601196873  
  
--------------------------------------------------------------------------  
| Id  | Operation         | Name | Rows  | Bytes | Cost (%CPU)| Time     |  
--------------------------------------------------------------------------  
|   0 | SELECT STATEMENT  |      | 50295 |  4273K|   161   (3)| 00:00:02 |  
|   1 |  TABLE ACCESS FULL| T    | 50295 |  4273K|   161   (3)| 00:00:02 | 






---方法4:只看统计信息不返回sql结果集:




SQL> set autotrace traceonly statistics;  
SQL> select * from t;  
  
已选择50295行。  
  
  
统计信息  
----------------------------------------------------------  
          0  recursive calls  
          0  db block gets  
          0  consistent gets  
          0  physical reads  
          0  redo size  
        911  bytes sent via SQL*Net to client  
        189  bytes received via SQL*Net from client  
          2  SQL*Net roundtrips to/from client  
          1  sorts (memory)  
          0  sorts (disk)  
      50295  rows processed  







  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一些用于Oracle性能优化的常用命令和技巧: 1. 使用EXPLAIN PLAN命令:EXPLAIN PLAN命令可以帮助你分析SQL语句的执行计划,以便找出潜在的性能问题。例如: ```sql EXPLAIN PLAN FOR SELECT * FROM table_name; ``` 2. 使用AUTOTRACE命令:AUTOTRACE命令可以显示SQL语句的执行计划和统计信息,包括IO操作和CPU消耗等。例如: ```sql SET AUTOTRACE ON; SELECT * FROM table_name; ``` 3. 使用SQL Trace:SQL Trace可以跟踪SQL语句的执行过程,并生成相应的跟踪文件,以便进行性能分析。例如: ```sql ALTER SESSION SET SQL_TRACE = TRUE; SELECT * FROM table_name; ``` 4. 使用AWR报告:AWR(Automatic Workload Repository)报告可以提供数据库的性能指标和统计信息,帮助你分析数据库的性能瓶颈。例如: ```sql SELECT * FROM table(DBMS_WORKLOAD_REPOSITORY.AWR_REPORT_HTML); ``` 5. 使用索引:合理地创建和使用索引可以提高查询的性能。你可以使用CREATE INDEX语句创建索引,并使用EXPLAIN PLAN命令来验证索引是否被使用。 6. 优化SQL语句:优化SQL语句可以提高查询的性能。你可以使用HINTS来指导优化器的执行计划,或者重写SQL语句以改进性能。 7. 监控和调整数据库参数:合理地设置数据库参数可以提高数据库的性能。你可以使用ALTER SYSTEM命令来修改数据库参数,并使用V$PARAMETER视图来查看当前的参数设置。 8. 使用数据库性能调优工具:Oracle提供了一些性能调优工具,如SQL Tuning Advisor和SQL Access Advisor等,可以帮助你分析和优化SQL语句的性能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值