1. 罗敏老师的书里面第三章讲了几个Oracle的性能检测调优的工具,其实很长时间以前我一直也知道,但是自己一直认为获取trace以及进行查看是一件非常复杂和困难的事情, 以至于一直闭着眼睛不去学习。
其实今年初工作中红遇到的一个大问题 如果先看过这本书的话 明显可以更快的定位到问题,而不是苦苦的等同事返回工作岗位再发现问题根源。
1. sql_trace
可以对不同的session以及系统级别创建sql_trace的跟踪,但是因为系统实例级别的话 会严重影响操作系统的性能 而且会产生大量的日志文件,造成存储子系统的压力, 所以不建议使用系统级别的sql_trace
可以先查看一下比较占用系统的session 然后针对session创建跟踪选项
exec dbms_system.set_sql_trace_in_session(session_id,serial_id,true)
然后查找trace文件 使用tkprof命令转换为较为容易理解的命令
tkprof tracefile.trc outputfile .txt sys=no sort=execpu print=3
2. 执行计划,最简单的方式是plsql使用F5就可以进行查看,如果没有客户端的话可以使用sqlplus来进行查看
1. 创建plan_table表
@.../rdbms/admin/utlxplan.
explain for select * from tabletest;
然后10g的话采用
select plan_table_output from table(dbms_xplan.dispaly());
3. autotrace
命令 set autotrace on
set timing on
select count(1) from tabletest;
如果执行查看执行计划和统计信息的话可以使用
set autotrace traceonly 的方式进行
其实书中第一章也讲了关于绑定变量的一些优化途径
就是如果无法实现绑定变量或者绑定变量的难度比较高时
可以通过修改系统参数
alter system set cursor_sharing=‘SIMILAR‘
但是修改之后可能还有部分数据不准确的bug 所以不建议直接进行修改。
电子书应该是很早很早之前开发同事给我的 但是一直没有仔细看, 其实资料有很多,只是学习不到心里去。