- 1、本文档共42页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
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子查询时,首先执行子查询,并将获得的结果列表存放在一个加了索引的临时表中。在执行子查询之前,系统先将主查询挂起,待子查询执行完毕,存放在临时表中以后再执行主查询。这
您可能关注的文档
- 概念图图形组织器图式和案例介绍.doc
- 概念形成重理在解.doc
- JCreator安装及使用.ppt
- 概念数据库设计[学员视图].doc
- jitjustintime丰田及时生产体系[日文原版].ppt
- JProfiler及tomcat整合.ppt
- 概率-期望与方差的计算和性质.docx
- 概率论与数理统计—第六章节样本及抽样分布.doc
- K3系统业务的流程指导说明书.ppt
- 概率问题一些例子.doc
- T_CSCS 063-2024 凿岩台车用柱齿钎头.pdf
- DB50_T 1780-2025 智能网联汽车软件升级功能性能安全要求及测试方法.pdf
- DB50_T 1739-2025 安全阀在线校验操作规程.docx
- T_CSCS 058-2024 正循环大孔径钻具.docx
- T_CSCS 052-2024 贯通式反循环潜孔冲击器及潜孔钻头.docx
- DB50_T 1781-2025 暴雨诱发的滑坡面场景形变自动化监测规范.docx
- T_ASC 50-2024 智慧住宅评价标准.docx
- DB50_T 1808-2025 “一表通”智能报表市级业务数据规范).pdf
- DB50_T 1729-2025 分布式电化学储能电站运维技术规范.pdf
- DB50_T 1807-2025 承压设备射线检测缺陷自动识别系统评价方法.docx
最近下载
- 大学生个人简历表格空白模板通用.docx
- 23S516混凝土排水管道基础及接口图集.pdf VIP
- (完整版)《小型露天采石场安全生产标准化评分办法》.pdf
- 砌筑砂浆配合比设计规程.docx VIP
- 医院物业后勤化管理重点部位强化清洁方案及消毒隔离措施方案.docx
- 增量学习与类增长的融合.pptx
- 可编程逻辑控制器(PLC)系列:Siemens S7-1200 (煤炭工业应用)_(11).项目案例分析:矿井提升机控制.docx
- 课题申报书:大学生“慢就业缓就业”心理成因及干预对策研究.docx VIP
- PROE-Program程序设计全解析.doc VIP
- 2014抗爆、泄爆门窗及屋盖、墙体建筑构造14J938.docx
文档评论(0)