- 2
- 0
- 约1.05万字
- 约 42页
- 2016-09-26 发布于江苏
- 举报
ORACLE SQL语句优化 资料共享 访问Table的方式 ORACLE 采用两种访问表中记录的方式: a. 全表扫描 全表扫描就是顺序地访问表中每条记录. ORACLE采用一次读入多个数据块(database block)的方式优化全表扫描. b. 通过ROWID访问表 你可以采用基于ROWID的访问方式情况,提高访问表的效率, , ROWID包含了表中记录的物理位置信息..ORACLE采用索引(INDEX)实现了数据和存放数据的物理位置(ROWID)之间的联系. 通常索引提供了快速访问ROWID的方法,因此那些基于索引列的查询就可以得到性能上的提高. 删除重复记录 最高效的删除重复记录方法 ( 因为使用了ROWID) DELETE FROM EMP E WHERE E.ROWID (SELECT MIN(X.ROWID) FROM EMP X WHERE X.EMP_NO = E.EMP_NO); 基于索引的SQL语句优化 1. IS NULL 与 IS NOT NULL 2. 联接列 3. 带通配符(%)的like语句 4. Order by语句 5. NOT 6. IN和EXISTS 7.用表连接替换EXISTS 8.用EXISTS替换DISTINCT 9.用WHERE替代ORDER BY 10.用UNION替换OR (适用于索引列) 11.用IN来替换OR 1.IS NULL 与 IS NOT NULL 不能用null作索引,任何包含null值的列都将不会被包含在索引中。即使索引有多列的情况下,只要这些列中有一列含有null,该列就会从索引中排除。也就是说如果某列存在空值,即使对该列建索引也不会提高性能。 任何在where子句中使用is null或is not null的语句优化器是不允许使用索引的。 2.联接列 对于有联接的列,即使最后的联接值为一个静态值,优化器不会使用索引的。 select * from employee where first_name||‘ ||last_name =George Bush; 使用索引的语句 Select * From employee where first_name =George and last_name =Bush; select * from employee where first_name = SUBSTR(name,1,INSTR(name, )-1) and last_name = SUBSTR(name,INSTR(name’, )+1) ; 3.带通配符(%)的like语句 通配符(%)在搜寻词首出现,所以Oracle系统不使用的索引 不使用索引的SQL select * from employee where last_name like %Bush%; 使用索引的SQL select * from employee where last_name like c%; 4.Order by语句 Order by语句决定了Oracle如何将返回的查询结果排序。Order by语句对要排序的列没有什么特别的限制,也可以将函数加入列中(象联接或者附加等)。任何在Order by语句的非索引项或者有计算表达式都将降低查询速度。 仔细检查order by语句以找出非索引项或者表达式,它们会降低性能。解决这个问题的办法就是重写order by语句以使用索引,也可以为所使用的列建立另外一个索引,同时应绝对避免在order by子句中使用表达式。 5.逻辑表达式 NOT 不使用索引 where not (status =VALID) ; where status VALID; where status !=VALID; select * from employee where salary3000; 使用索引 select * from employee where salary3000 or salary3000; 6.IN和EXISTS ... where column in(select * from ... where ...); ... where exists (select X from ...where ...); 通过使用EXISTS,Oracle系统会首先检查主查询,然后运行子查询直到找到第一个匹配项,这就节省了时间。Oracle系统在执行IN子查询时,首先执行子查询,并将获得的结果列表存放在一个加了索引的临时表中。在执行子查询之前,系统先将主查询挂起,待子查询执行完毕,存放在临时表中以后再执行主查询。这
您可能关注的文档
- EDA综合课程设计48342课程.ppt
- FPC基础制程简要介绍课程.ppt
- Abdominalwall课程.ppt
- DMS系统备件模块培训20120503课程.ppt
- 常用金属材料基础知识课程.ppt
- SixSigma与服务管理课程.ppt
- SocialCognitiveTheoriesofExerciseBehaviour课程.ppt
- PCB流程介绍36973课程.ppt
- 电子元器件来料检验培训资料1课程.ppt
- 仓管员培训教程课程.ppt
- 2025年全国演出经纪人员资格认定考试试卷带答案(研优卷).docx
- 2025年全国演出经纪人员资格认定考试试卷完整版.docx
- 2025年全国演出经纪人员资格认定考试试题库及完整答案.docx
- 2025年全国演出经纪人员资格认定考试试卷完美版.docx
- 2025年全国演出经纪人员资格认定考试试卷含答案(实用).docx
- 2025年全国演出经纪人员资格认定考试试卷及答案(各地真题).docx
- 2025年下半年内江市部分事业单位公开考试招聘工作人员(240人)备考题库附答案.docx
- 2025年全国演出经纪人员资格认定考试试卷及答案1套.docx
- 2025年下半年四川成都市郫都区面向社会引进公共类事业单位人员2人备考题库最新.docx
- 2025年下半年内江市部分事业单位公开考试招聘工作人员(240人)备考题库附答案.docx
原创力文档

文档评论(0)