网站大量收购闲置独家精品文档,联系QQ:2885784924

Oracle数据库的优化.docVIP

  1. 1、本文档共17页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Oracle数据库的优化 目录 TOC \o 1-9 \h \z \u 目录 1 正文 2 文1:Oracle数据库的优化 2 1 如何优化Pae 2 1.   1 SQL语句的Pae处理步骤: 2 1.2 在共享池中重用SQL语句 3 2 如何优化Execute和Fetch 3 2.1 避免无计划的全表扫描 3 2.2只使用选择性索引 5 2.3管理多表联结 6 2.4管理包含视图的SQL语句 6 2.5优化子查询 7 1)当执行子查询时 7 2)如何组合子查询 8 3)怎样进行存在检查 8 2.6管理对非常巨大的表的访问 8 1)问题 8 2)管理数据接近 8 3)避免没有帮助的索引扫描 9 4)创建充分索引的表 9 5)并行选项 9 2.7使用UNION ALL而不是UNION 9 2.8避免在SQL里使用PLQL功能调用 10 文2:oracle数据库迁移 12 0 引言 12 1 oracle数据库文件构成 12 2 Oracle数据库迁移的迁移方案 13 第一步:加载初始化文件 13 第三步:加载数据库,包括重做日志文件 14 3 Oracle数据库迁移具体实践 14 4 总结与展望 15 参考文摘引言: 15 原创性声明(模板) 16 文章致谢(模板) 16 正文 Oracle数据库的优化 文1:Oracle数据库的优化 1 如何优化Pae 1.   1 SQL语句的Pae处理步骤: 1)   计算语句值 2)   共享池中有无与此语句值相同的语句? 3)   共享池中有与此语句字符完全匹配的语句? 4)   准备要运行的SQL语句 5)   为新语句在共享池中创建空间 6)   将语句存放在共享池中 7)   修改共享池图,标明语句的值和在共享池中的位置 8)   执行准备好的SQL语句 最理想的是,语句只执行1、2、3和8步来进行处理。不经过2、3步来测试被传给Oracle的语句要使用1~8步进行处理。只经过1、2、3、8的SQL语句要比经过1~8步的语句更为有效。 1.2 在共享池中重用SQL语句 当SQL语句被传递给Oracle处理时,其秘诀是重复使用已经在共享池中的语句,而不是让Oracle在接受语句时去准备新的语句。前面表明,如果Oracle接受了一个与共享池中的语句相一致的语句,就重用共享池中的语句。 Oracle提供在数据库中存储代码的能力。当应用系统开始运行时,从数据库中读取代码(可用PLQL语句编制)并像其它语句那样传递到共享池中去处理。从数据库中取出的代码是编译过的并驻留在共享池中。 可以利用数据库中存储的程序代码设计应用系统,检查所有的事务处理以及主要的通用的过程,研究现有的应用系统并把主要的处理程序转换为数据库中存储的程序代码。在Oracle中存储代码可以通过过程、程序包、函数、触发器等来实现。 2 如何优化Execute和Fetch 2.1 避免无计划的全表扫描 全表扫描连续从表读取所有数据,而不管数据是否与查询有关。避免不必要的全表扫描有两个充足理由:1)全表扫描没有选择性 2)   过全表扫描读取的数据很快从SGA的缓冲区移走(如果正在扫描的表不是“高速存储”的表) 在基于规则优化的情况下,如果下列任何条件在SGA语句出现,就要对一个表进行全表扫描。 1)   该表无索引 2)   对返回的行无任何限定条件(如无Where语句) 3)   对数据表与任何索引主列相对应的行无限定条件。例如,在City-State-Zip列上创建了三列复合索引,那么仅对State列有限定条件的查询不能使用这个索引,因为State不是索引的主列。 4)   对索引主列的行有限定条件,但条件或者是NULL或者是不相等。例如,City列上存在索引,在所有下列情况下都不会使用索引。 Where city is null Where city is not null Where city!=’liaoning’ 5)      对索引主列的行有限定条件,但条件在表达式里使用。例如,如果在City列上索引,那么限定条件 Where City=’liaoning’ 可以使用索引。然而,如果限定条件是 Where UPPER(City)=’liaoning’ 那么不会使用City列上的索引,因为City列在UPPER函数里。如果将City列与文本字符串联结在一起,也不会使用索引。例如,如果限定条件是 Where City||’x’ like ‘liaoning% 那么不会使

文档评论(0)

asen1997 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档