您好,欢迎访问一九零五行业门户网

ORACLE 深入解析10053事件

新年新说:新年伊始,2012年过去了,我们又踏上了2013年的,回顾2012我们付出了很多,辛勤和汗水换来了知识和友谊,当我们技术成长的时候我才发现长路漫漫,唯心
新年新说:
新年伊始,2012年过去了,我们又踏上了2013年的,回顾2012我们付出了很多,辛勤和汗水换来了知识和友谊,当我们技术成长的时候我才发现长路漫漫,唯心可敬。一份耕耘一份收获,走技术之路是艰辛的 孤独的 漫长的,在此向刚入门的小伙子们,说一说心得体会。做好心理准备,可能你为了小小的虚荣心,为了生活所迫,才走上此路,但你也要走的洒脱 走的稳健,当你站在第一个里程碑时回顾来时路,你会发现你的收获是值得的,你的付出是有意思的,你才能有继续走下去的勇气。我要感谢 alantany  tigerfish  海哥  张老师  飚哥  寅总 dingjun  晶晶 童mm 蓓蓓 还有 好多好多 帮助过我的人们,我的成长离不开你们的鼓励。飙完泪之后开始上干货吧:)
oracle 深入解析10053事件
本次我们主要讲解oracle 10053事件和实验,好多朋友可能对这个事件不是很熟悉,因为在日常运维中用到的不是很多。oracle 10046和10053 都是非官方trace sql的方法,在官方文档上是找不到相关资料的,但在mos上可以找到。sql_trace是官方推荐的trace sql的方法,在官方文档上是可以查询出来的。
10053事件:用来描述oracle如何选择执行计划的过程,然后输出到trace文件里,共我们参考,因为我们经常看执行计划怎么执行的消耗了哪些资源,而不是常看执行计划怎么选择出来了的。
10053场景:当sql语句执行时走的是错误的执行计划,而又找不到原因时,这时请用10053来分析一下原因。
10053特点:
(1)只可以了解oracle执行计划的选择过程
(2)无法获知代价的计算公式,因为这是oracle内部的商业机密,美国服务器,而且每个oracle版本的优化器计算公式都不相同差距还是蛮大的,不同版本的同一个语句的代价也不一样,优化器现在还不是很成熟,还有待完善。
(3)在这个里面我们重点要了解的是“代价”是如何计算出来的,然后我们才能了解执行计划是如何选择的。
(4)在10053中可以了解哪些因素影响sql的执行代价
(5)oracle 8i cost等价io资源消耗   9i以后cost等价io+cpu+网络+等待事件+其他代价
一般io资源的权重比较大 cpu权重较小
10053内容:
参数区:初始化参数,隐含参数,这些参数可以左右oracle工作方式
sql区:执行的sql语句,是否使用绑定变量,是否进行了转换操作
系统信息区:操作系统统计信息  cpu主频 cpu执行时间 io寻址时间 单块读时间 多块读时间
对象统计信息区:
数据访问方式:访问方式不一样计算代价的方法也不一样,全表扫描 走索引 多表关联 代价都不同
关联查询:把每张表都作为驱动表去组合,择优选择“代价”最小的关联方式,与哪个表在前无关系
代价的最后修正:oracle会对选择出来的代价再进行最后的修正,使其更准确一些,更合理一些
选择出最终执行计划:这个过程是非常快速的,毫秒级就搞定啦
实验环境
leo1@leo1> select * from v$version;                     这是我的oracle edition
banner
--------------------------------------------------------------------------------
oracle database 11g enterprise edition release 11.2.0.1.0 - 64bit production
pl/sql release 11.2.0.1.0 - production
core    11.2.0.1.0      production
tns for linux: version 11.2.0.1.0 - production
nlsrtl version 11.2.0.1.0 - production
1.验证全表扫描的成本计算公式,贴出执行计划和计算公式。
leo1@leo1> col sname for a20
leo1@leo1> col pname for a20
leo1@leo1> col pual1 for a30
leo1@leo1> col pual2 for a30
leo1@leo1> select * from sys.aux_stats$;    查看操作系统统计信息
sname              pname                  pval1    pval2
-------------------- -------------------- ---------- ---------------------------------------------------
sysstats_info        status                             completed
sysstats_info        dstart                             08-15-2009 00:49
sysstats_info        dstop                              08-15-2009 00:49
sysstats_info        flags                         1
sysstats_main        cpuspeednw            2657.0122  
sysstats_main        ioseektim                    10   
sysstats_main        iotfrspeed                 4096
sysstats_main        sreadtim      
sysstats_main        mreadtim      
sysstats_main        cpuspeed      
sysstats_main        mbrc      
sysstats_main        maxthr
sysstats_main        slavethr
说明
其它类似信息

推荐信息