欢迎来到天天文库
浏览记录
ID:29738820
大小:29.99 KB
页数:31页
时间:2018-12-22
《oracle解释计划,耗费》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、为了适应公司新战略的发展,保障停车场安保新项目的正常、顺利开展,特制定安保从业人员的业务技能及个人素质的培训计划oracle解释计划,耗费 SQL语句性能调整之ORACLE的执行计划【内容导航】 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?目的-通过该培训员工可对保安行业有初步了解,并感受到安保行业的发展的巨大潜力,可提升其的专业水平,并确保其在这个行业的安全感。为了适应公司新战略的发展,保障停车场安保新项目的正常、顺利开展,特制定安保从业人员的业务技能及个人素质的培训计划 第1页:背景知识第2页:Rowid的概念第3页:可选
2、择性第4页:执行计划的步骤第5页:访问路径(方法)--accesspath第6页:4种类型的索引扫描第7页:表之间的连接第8页:嵌套循环(NestedLoops,NL)第9页:如何产生执行计划第10页:如何分析执行计划第11页:对于RBO优化器第12页:对于CBO优化器第13页:如何干预执行计划--使用hints提示第14页:使用全套的hints第15页:具体案例分析 文本Tag:Oracle数据库Oracle数据库开发 【IT168技术文档】 背景知识: 为了更好的进行下面的内容我们必须了解一些概念性的术语: 共享sql语句目的-通过该培训员工可对保安行业有初步
3、了解,并感受到安保行业的发展的巨大潜力,可提升其的专业水平,并确保其在这个行业的安全感。为了适应公司新战略的发展,保障停车场安保新项目的正常、顺利开展,特制定安保从业人员的业务技能及个人素质的培训计划 为了不重复解析相同的SQL语句(因为解析操作比较费资源,会导致性能下降),在第一次解析之后,ORACLE将SQL语句及解析后得到的执行计划存放在内存中。这块位于系统全局区域SGA(systemglobalarea)的共享池(sharedbufferpool)中的内存可以被所有的数据库用户共享。因此,当你执行一个SQL语句(有时被称为一个游标)时,如果该语句和之前的执行过的某
4、一语句完全相同,并且之前执行的该语句与其执行计划仍然在内存中存在,则ORACLE就不需要再进行分析,直接得到该语句的执行路径。ORACLE的这个功能大大地提高了SQL的执行性能并大大节省了内存的使用。使用这个功能的关键是将执行过的语句尽可能放到内存中,所以这要求有大的共享池(通过设置sharedbufferpool参数值)和尽可能的使用绑定变量的方法执行SQL语句。 当你向ORACLE提交一个SQL语句,ORACLE会首先在共享内存中查找是否有相同的语句。这里需要注明的是,ORACLE对两者采取的是一种严格匹配,要达成共享,SQL语句必须完全相同(包括空格,换行等)。
5、下面是判断SQL语句是否与共享内存中某一SQL相同的步骤: 1).对所发出语句的文本串进行hashed。如果hash值与已在共享池中SQL语句的hash值相同,则进行第2步: 2)将所发出语句的文本串(包括大小写、空白和注释)与在第1步中识别的所有已存在的SQL语句相比较。 例如: SELECT*FROMempWHEREempno=1000; 和下列每一个都不同 SELECT*fromempWHEREempno=1000; SELECT*FROMEMPWHEREempno=1000; SELECT*FROMempWHEREempno=XX; 在上面的语句中
6、列值都是直接SQL语句中的,今后我们将这类sql成为硬编码SQL或字面值SQL 使用绑定变量的SQL语句中必须使用相同的名字的绑定变量(bindvariables),例如:目的-通过该培训员工可对保安行业有初步了解,并感受到安保行业的发展的巨大潜力,可提升其的专业水平,并确保其在这个行业的安全感。为了适应公司新战略的发展,保障停车场安保新项目的正常、顺利开展,特制定安保从业人员的业务技能及个人素质的培训计划 a.该2个sql语句被认为相同 selectpin,namefrompeoplewherepin=:; selectpin,namefrompeoplewher
7、epin=:; b.该2个sql语句被认为不相同 selectpin,namefrompeoplewherepin=:_ind; selectpin,namefrompeoplewherepin=:_ind; 今后我们将上面的这类语句称为绑定变量SQL。 3).将所发出语句中涉及的对象与第2步中识别的已存在语句所涉及对象相比较。例如: 如用户user1与用户user2下都有EMP表,则 用户user1发出的语句:SELECT*FROMEMP;与 用户user2发出的语句:SELECT*FROMEMP
此文档下载收益归作者所有