文章目录
启用Autotrace自动跟踪功能
1.1.cmd命令sqlplu登录数据库
sqlplus 用户/密码
1.2.set autotrace的使用
设置参数/命令:
SET AUTOTRACE OFF ---------------- 不生成AUTOTRACE 报告,这是缺省模式
SET AUTOTRACE ON EXPLAIN ------ AUTOTRACE只显示优化器执行路径报告
SET AUTOTRACE ON STATISTICS -- 只显示执行统计信息
SET AUTOTRACE ON ----------------- 包含执行计划和统计信息
SET AUTOTRACE TRACEONLY ------ 同set autotrace on,但是不显示查询输出
1、3 Autotrace功能和sql语句结合执行
SET AUTOTRACE ON +sql:
SET AUTOTRACE OFF+sql:
SET AUTOTRACE TRACEONLY+sql;
使用方法就是 先执行set autotrace 参数
后执行相应得sql
就可以根据前面参数得设置得到相应得sql执行计划
进行详细分析。
1、4 AUTOTRACE Statistics(统计信息)常用列解释
代码:
SQL> SET AUTOTRACE ON STATISTICS;
SQL> select * from itpux;
SQL> SET AUTOTRACE ON STATISTICS;
SQL> select * from itpux;
ID NAME
---------- ----------
5 itpux04
6 itpux04
7 itpux04
9 itpux04
1 itpux01
2 itpux02
3 itpux03
4 itpux04
已选择8行。
统计信息 1
----------------------------------------------------------
0 recursive calls
0 db block gets
18 consistent gets
0 physical reads
172 redo size
761 bytes sent via SQL*Net to client
520 bytes received via SQL*Net from client
2 SQL*Net roundtrips to/from client
0 sorts (memory)
0 sorts (disk)
8 rows processed
统计信息 2
----------------------------------------------------------
1 recursive calls
0 db block gets
69 consistent gets
0 physical reads
0 redo size
40717 bytes sent via SQL*Net to client
717 bytes received via SQL*Net from client
20 SQL*Net roundtrips to/from client
0 sorts (memory)
0 sorts (disk)
276 rows processed
不同得sql执行计划返回得统计信息也不相同,对此详解统计信息中信息:
1、recursive calls:用户和系统级别生成得递归调用数,简而言之就是sql中得sql。重要参数
2、db block gets:当前读
3、consistent gets 逻辑读:逻辑读从内存中读取数据块的数量,,逻辑读越多越好
,重要参数
4、physical reads 物理读:物理读从磁盘中读取数据块得数量,主要发生得原因:1、数据库高速缓存中不存在这些块。2、全表扫描。3、磁盘排序;这个值越高说明从磁盘请求大量的数据到buffer cache总,通常意味着存在大量的全表扫描sql语句,会影响数据库的性能,尽量避免全表扫描,全表扫描的sql应添加相应索引,来优化sql; 物理读越少越好
。重要参数
5、redo size:生成dml的redo日志记录大小。
6、sorts (memory):内存执行的排序量
7、sorts (disk):磁盘执行的排序量
40717 bytes sent via SQLNet to client:从SQLNet向客户端发送了40717字节的数据
717 bytes received via SQLNet from client:客户端向sqlnet发送了416字节的数据
20 SQL*Net roundtrips to/from client:从客户端发送和接收的oracle网络消息的总数,