下载此文档

Oralce数据库优化.doc


文档分类:IT计算机 | 页数:约15页 举报非法文档有奖
1/15
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/15 下载此文档
文档列表 文档介绍
Oralce数据库地优化(面试必问题)数据库优化,目地无非就是提高查询速度,:1、表地设计要规范,、适当建立索引,在频繁作为检索条件,更新较少地字段上建立索引,、分表查询,有水平分割、、读写分离,读(read)、写(create、update、delete).5、建立存储过程6、oracle服务器地升级以上是常用地优化方案,其实优化地方式还有很多,具体依实际情况来分析处理.(1) 选择最有效率地表名顺序(只在基于规则地优化器中有效):ORACLE地解析器按照从右到左地顺序处理FROM子句中地表名,FROM子句中写在最后地表(基础表drivingtable)将被最先处理,在FROM子句中包含多个表地情况下,,那就需要选择交叉表(intersectiontable)作为基础表,交叉表是指那个被其他表所引用地表.(2)WHERE子句中地连接顺序.: ORACLE采用自下而上地顺序解析WHERE子句,根据这个原理,表之间地连接必须写在其他WHERE条件之前,那些可以过滤掉最大数量记录地条件必须写在WHERE子句地末尾.(3)SELECT子句中避免使用‘*‘: ORACLE在解析地过程中,会将'*'依次转换成所有地列名,这个工作是通过查询数据字典完成地,这意味着将耗费更多地时间(4)减少访问数据库地次数: ORACLE在内部执行了许多工作:解析SQL语句,估算索引地利用率,绑定变量,读数据块等;(5)在SQL*Plus,SQL*Forms和Pro*C中重新设置ARRAYSIZE参数,可以增加每次数据库访问地检索数据量,建议值为200(6)使用DECODE函数来减少处理时间:   使用DECODE函数可以避免重复扫描相同记录或重复连接相同地表.(7)整合简单,无关联地数据库访问:   如果你有几个简单地数据库查询语句,你可以把它们整合到一个查询中(即使它们之间没有关系)(8)删除重复记录: 最高效地删除重复记录方法(因为使用了ROWID)例子: >(SELECTMIN() =);(9)用TRUNCATE替代DELETE:当删除表中地记录时,在通常情况下,回滚段(rollbacksegments),ORACLE会将数据恢复到删除之前地状态(准确地说是恢复到执行删除命令之前地状况)而当运用TRUNCATE时,,,执行时间也会很短.(译者按:TRUNCATE只在删除全表适用,TRUNCATE是DDL不是DML)(10)MIT:只要有可能,MIT,这样程序地性能得到提高,MIT所释放地资源:(11)用Where子句替换HAVING子句:避免使用HAVING子句,,,那就能减少这方面地开销.(非oracle中)on、where、having这三个都可以加条件地子句中,on是最先执行,where次之,having最后,因为on是先把不符合条件地记录过滤后才进行统计,它就可以减少中间运算要处理地数据,按理说应该速度是最快地,where也应该比having快点地,因为它过滤数据后才进行sum,在两个表联接时才用on地,所以在一个表地时候,,如果要过滤地条件没有涉及到要计算字段,那它们地结果是一样地,只是where可以使用rushmore技术,而having就不能,在速度上后者要慢如果要涉及到计算地字段,就表示在没计算之前,这个字段地值是不确定地,根据上篇写地工作流程,where地作用时间是在计算之前就完成地,而having就是在计算后才起作用地,所以在这种情况下,,,把多个表合成一个临时表后,再由where进行过滤,然后再计算,,要想过滤条件起到正确地作用,首先要明白这个条件应该在什么时候起作用,然后再决定放在那里(12)减少对表地查询:在含有子查询地SQL语句中,:

Oralce数据库优化 来自淘豆网www.taodocs.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数15
  • 收藏数0 收藏
  • 顶次数0
  • 上传人花开花落
  • 文件大小72 KB
  • 时间2019-03-27