- 4
- 0
- 约 59页
- 2017-02-02 发布于江苏
- 举报
Oracle sql 性能优化调整 Oracle Database 10g:SQL Tuning Introduction 概要 Oracle 在查询优化方面提供了什么? SQL 语句转换 1. 选用适合的ORACLE优化器 ORACLE的优化器共有3种: a. RULE (基于规则) b. COST (基于成本) c. CHOOSE (选择性) 2.?????? 访问Table的方式 ORACLE 采用两种访问表中记录的方式: a.?????? 全表扫描 b.?????? 通过ROWID访问表 ?3.?????? 共享SQL语句 共享的语句必须满足三个条件: ?a.????? 字符级的比较 b.????? 两个语句所指的对象必须完全相同 C.????? 两个SQL语句中必须使用相同的名字的绑定变量(bind variables) 4. 选择最有效率的表名顺序(只在基于规则的优化器中有效)ORACLE的解析器按照从右到左的顺序处理FROM子句中的表名,因此FROM子句中写在最后的表(基础表 driving table)将被最先处理. 5.?????? WHERE子句中的连接顺序. ORACLE采用自下而上的顺序解析WHERE子句,根据这个原理,表之间的连接必须写在其他WHERE条件之前, 那些可以过滤掉最大数量记录的条件必须写在WHERE子句的末尾. 6.???? SELECT子句中避免使用 ‘ * ‘ 7.???? 减少访问数据库的次数 当执行每条SQL语句时, ORACLE在内部执行了许多工作: 解析SQL语句, 估算索引的利用率, 绑定变量 , 读数据块等等. 由此可见, 减少访问数据库的次数 , 就能实际上减少ORACLE的工作量. 8.?????? 使用DECODE函数来减少处理时间 使用DECODE函数可以避免重复扫描相同记录或重复连接相同的表 9.?????? 整合简单,无关联的数据库访问 如果你有几个简单的数据库查询语句,你可以把它们整合到一个查询中(即使它们之间没有关系) 10.?????? 删除重复记录 最高效的删除重复记录方法 ( 因为使用了ROWID) 11.?????? 用TRUNCATE替代DELETE 12.?????? 尽量多使用COMMIT 在使用COMMIT时必须要注意到事务的完整性,现实中效率和事务完整性 13.?????? 计算记录条数 和一般的观点相反, count(*) 比count(1)稍快 , 当然如果可以通过索引检索,对索引列的计数仍旧是最快的. ?14.?????? 用Where子句替换HAVING子句 ? 避免使用HAVING子句, HAVING 只会在检索出所有记录之后才对结果集进行过滤. 这个处理需要排序,总计等操作. 如果能通过WHERE子句限制记录的数目,那就能减少这方面的开销. 15.?????? 减少对表的查询 在含有子查询的SQL语句中,要特别注意减少对表的查询 16.?????? 通过内部函数提高SQL效率. 17.?????? 使用表的别名(Alias) 当在SQL语句中连接多个表时, 请使用表的别名并把别名前缀于每个Column上.这样一来,就可以减少解析的时间并减少那些由Column歧义引起的语法错误. ? (译者注: Column歧义指的是由于SQL中不同的表具有相同的Column名,当SQL语句中出现这个Column时,SQL解析器无法判断这个Column的归属) 18.?????? 用EXISTS替代IN 在许多基于基础表的查询中,为了满足一个条件,往往需要对另一个表进行联接.在这种情况下, 使用EXISTS(或NOT EXISTS)通常将提高查询的效率 19.?????? 用NOT EXISTS替代NOT IN 在子查询中,NOT IN子句将执行一个内部的排序和合并. 无论在哪种情况下,NOT IN都是最低效的 (因为它对子查询中的表执行了一个全表遍历). 为了避免使用NOT IN ,我们可以把它改写成外连接(Outer Joins)或NOT EXISTS 20.?????? 用表连接替换EXISTS 通常来说 , 采用表连接的方式比EXISTS更有效率 ?21.?????? 用EXISTS替换DISTINCT 当提交一个包含一对多表信息(比如部门表和雇员表)的查询时,避免在SELECT子句中使用DISTINCT. 一般可以考虑用EXIST替换 ?22.?????? 识别’低效执行’的SQL语句 ?23.?????? 使用TKPROF 工具来查询SQL性能状态 24.?????? 用EXPLAIN PLAN 分析SQL语
您可能关注的文档
最近下载
- 医院电子病历五级工作组工作制度及流程.docx VIP
- 增值税发票开票系统操作流程.doc VIP
- 建筑工程图集 15D202-2:柴油发电机组设计与安装.pdf VIP
- 2024商丘医学高等专科学校教师招聘考试真题及答案.docx VIP
- 现代工程图学习题集(第5版)杨裕根 课后习题答案解析.pdf
- 医院电子病历分级评价现场演练专家问题总结(五级).pdf VIP
- 狂犬病病毒攻毒犬唾液排毒与病毒在体内的分布研究.pdf VIP
- 桩基施工方案桩基桩基施工方案施工方案桩基础施工方案桩基施工.docx
- 屋面防水工程工程施工组织设计方案.docx VIP
- 2025年沈阳市直机关遴选公务员笔试真题汇编带答案解析.docx VIP
原创力文档

文档评论(0)