设为首页 收藏本站
查看: 798|回复: 0

[经验分享] Oracle 性能调优学习笔记(二)- ----Oracle SQL TRACE和TKPROF使用

[复制链接]

尚未签到

发表于 2016-7-30 15:56:06 | 显示全部楼层 |阅读模式
Oracle SQL TRACE和TKPROF使用
启动sql trace 之后收集的信息包括
1.解析、执行、返回数据的次数
2.cpu和执行命令的时间
3.物理读和逻辑读的次数
4.系统处理的记录数
5.库缓冲区错误
1.查看系统用户dump
show parameter dump;
background_dump_dest:存储alertlog和后台进程trace的.
user_dump_dest:存储用户的trace文件.
max_dump_file_size:跟踪文件的大小.
alter system set max_dump_file_size=500;
alter system set user_dump_dest='';
2.初始化SQL TRACE
A.timed_statistics参数:(一般用户和dba)
timed_statistics=true  允许sql trace 和其他的一些动态性能视图收集与时间有关的参数、
系统级别:
alter system set timed_statistics=true;
会话级别:
alter session set timed_statistics=true;
查看dump的文件的大小
B.sql_trace参数(dba权限可以修改)
sql_trace=true表示启动跟踪,false表示禁用跟踪.
系统级别:
alter system set sql_trace=true scope=spfile;
会话级别:
alter session set sql_trace=true;
通过存储过程启动sql_trace
execute rdbms_system.set_sql_trace_in_session(SID,SERIAL#,true);
ps:9为SID,7为SERIAL# true为开启跟踪

使用说明:
1.用户dba用户登录
sqlplus /nolog
conn /as sysdba
2.设置初始化跟踪参数
alter session set timed_statistics=true;
dba用户跟踪:
alter session set sql_true=true;
dba跟踪其他用户(利用sys跟踪tbs,sysdba登录):
select sid,serial#,command,username
from v$session
where username='TBS';
SID:121
SERIAL#:4786
exec  dbms_system.set_sql_trace_in_session(121,4786,true);
查看TBS用户的跟踪文件:
用户跟踪文件的命名格式为:<oracle-SID>-ora-<PSID>.trc
备注:<oracle-SID>:oracle 的SID.
<PSID>:跟踪用户sid.
3.查找跟踪文件
根据会话中用户的名称查找对应paddr,根据paddr查找对应的进程spid.
select spid from v$process
where addr = (
select paddr from v$session
where username='TBS'
);
如果oracle-SID为ticket,spid=35572,那么对应的跟踪文件为: ticket-ora-35572.trc.
然后使用TKPROF查看执行信息:

TKPROF的使用
tkprof 的目的是将sql trace 生成的跟踪文件转换成用户可以理解的格式.
tkprof可对.trc文件进行分析,并生成一个分析文件.并且在分析.trc文件,生
成分析文件时按各种选项进行排序,其中比较有用的一个排序选项是fchela,
即按照elapsed time fetching来对分析的结果排序(记住要设置初始化参数
time_statistics=true),生成的.prf文件将把最消耗时间的sql放在最前面
显示。另外一个有用的参数就是sys,这个参数设置为no可以阻止所有以sys
用户执行的sql被显示出来,这样可以减少分析出来的文件的复杂度,便于查看。

1. 格式
tkprof inputfile outputfile [optional | parameters ]
参数和选项:
explain=user/password 执行explain命令将结果放在SQL trace的输出文件中
table=schema.table 指定tkprof处理sql trace文件时临时表的模式名和表名
insert=scriptfile 创建一个文件名为scriptfile的文件,包含了tkprof存放的输出sql语句
sys=[yes/no] 确定系统是否列出由sys用户产生或重调的sql语句
print=number 将仅生成排序后的第一条sql语句的输出结果
record=recordfile 这个选项创建一个名为recorderfile的文件,包含了所有重调用的sql语句
sort=sort_option 按照指定的方法对sql trace的输出文件进行降序排序
sort_option 选项
prscnt  按解析次数排序
prscpu  按解析所花cpu时间排序
prsela  按解析所经历的时间排序
prsdsk  按解析时物理的读操作的次数排序
prsqry  按解析时以一致模式读取数据块的次数排序
prscu   按解析时以当前读取数据块的次数进行排序
execnt  按执行次数排序
execpu  按执行时花的cpu时间排序
exeela  按执行所经历的时间排序
exedsk  按执行时物理读操作的次数排序
exeqry  按执行时以一致模式读取数据块的次数排序
execu   按执行时以当前模式读取数据块的次数排序
exerow  按执行时处理的记录的次数进行排序
exemis  按执行时库缓冲区的错误排序
fchcnt  按返回数据的次数进行排序
fchcpu  按返回数据cpu所花时间排序
fchela  按返回数据所经历的时间排序
fchdsk  按返回数据时的物理读操作的次数排序
fchqry  按返回数据时一致模式读取数据块的次数排序
fchcu   按返回数据时当前模式读取数据块的次数排序
fchrow  按返回数据时处理的数据数量排序
通过TKPROF生成相关的文件:
tkprof ticket-ora-35572.trc ticket_tbs.prf aggregate=yes sys=no sort=fchela






  

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-251345-1-1.html 上篇帖子: Oracle所谓的不区分大小写是指oracle的命令,表名,列名等直接输入的内容,Oracle会将其全部转化为大写。 下篇帖子: Oracle JDBC内存管理--Oracle白皮书2009年8月
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表