oracle程序调优.pptx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
oracle程序调优

数据库2程序调优;sql语句: DDL数据定义语言:create table,create index DML数据操作语言:insert,update,delete DCL数据库控制语言:grant,revoke Pl sql语句( Procedural Language ): 为代码的可执行单元提供了块结构,这种定义良好的 结构使得代码维护变得很容易 提供了如下的过程化结构: – 变量、常量和类型 – 条件和循环等控制结构 – 定义一次执行多次的可重用程序单元;SET AUTOT[RACE] {OFF | ON | TRACE[ONLY]} [EXP[LAIN]] [STAT[ISTICS]] grant plustrace to test; 授于test用户plustrace 角色权限 Set timi on; 开启语句执行时间显示 Set line 120; 调整行宽为显示120个字符 set autotrace on; ——开启跟踪统计,查看执行计划、统计信息并且返回sql结果集 set autotrace traceonly; ——查看执行计划、统计信息不返回sql结果集: set autotrace traceonly explain; ——只看执行计划不返回sql结果集: set autotrace traceonly statistics; ——只看统计信息不返回sql结果集: Set autotrace off; ——结束统计;逻辑读次数;表扫描方式: Table access full:全表扫描方式 Index full scan:对索引全扫描方式,一次读取一个索引块,保证有序,用于有排序的场合 index fast full scan:对索引快速全扫描方式,一次读取多个索引块,不保证有序,count、sum Index full scan (min/max):对索引针对最大最小取值的特别索引扫描方式 index range scan:对索引范围扫描方式,针对索引高度低的特性;触发Recursive Call的情况: (1)我们做一条insert 时,没有足够的空间来保存row记录,Oracle 通过Recursive Call 来动态的分配空间。 (2)执行DDL语句时,ORACLE总是隐含的发出一些recursive SQL语句,来修改数据字典信息,以便成功的执行该DDL语句。 (3)当Shared Pool过小,data dictionary cache 也会相应的过小,没有足够的空间存储ORACLE的系统数据字典信息时,会发生Recursive calls,这些Recursive calls会将数据字典信息从硬盘读入内存中。 (4)存储过程、触发器内如果有SQL调用的话,也会产生recursive SQL。;Sql优化原则一——绑定变量:;  1、当一用户第一次提交一个SQL表达式时,Oracle会将这SQL进行Hard parse,这过程有点像程序编译,检查语法、表名、字段名等相关信息,这过程会花比较长的时间,因为它要分析语句的语法与语义。然后获得最优化后的执行计划(sql plan),并在内存中分配一定的空间保存该语句与对应的执行计划等信息。   2、当用户第二次请求或多次请求时,Oracle会自动找到先前的语句与执行计划,而不会进行Hard parse,而是直接进行Soft parse(把语句对应的执行计划调出,然后执行),从而减少数据库的分析时间。   注意的是:Oracle中只能完全相同的语句,包括大小写、空格、换行都要求一样时,才会重复使用以前的分析结果与执行计划。 绑定变量: execute immediate insert into t values ( :x ) using i; 静态SQL: insert into t values (i); ;Oracle的优化器有两种优化方式: 基于规则的优化方式(Rule-Based Optimization,简称为RBO) 基于代价的优化方式(Cost-Based Optimization,简称为CBO) 在Oracle8及以后的版本,Oracle强列推荐用CBO的方式 RBO方式:优化器在分析SQL语句时,所遵循的是Oracle内部预定的一些规则。比如我们常见的,当一个where子句中的一列有索引时去走索引。 CBO方式:它是看语句的代价(Cost),这里的代价主要指Cpu和内存。优化器在判断是否用这种方式时,主要参照的是表及索引的统计信息。统计信息给出表的大小、有少行、每行的长度等信息。这些统计信息起初在库内是没有的,是做ana

文档评论(0)

yy558933 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档