- 1、本文档共19页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
ORACLE基于SQL查询优化培训文档剖析
谢 谢 谢 谢 ORACLE基于SQL查询优化培训文档 查询优化基本准则详解 * ORACLE 的解析器按照从右到左的顺序处理 FROM 子句中的表名,因 此 FROM 子句中写在最后的表(基础表 driving table)将被最先处理。在 FROM 子句中包含多个表的情况下,你必须选择记录条数最少的表作为 基础表。 例如: 表 TAB1 16384 条记录 表 TAB2 1 条记录 选择 TAB2作为基础表 (最好的方法) select count(*) from tab1,tab2 执行时间 0.96秒 选择 TAB2作为基础表 (不佳的方法) select count(*) from tab2,tab1 执行时间 26.09秒 查询优化基本准则详解 * ORACLE 采用自下而上的顺序解析 WHERE 子句,根据这个原理, 表之间的连接必须写在其他 WHERE 条件之前, 那些可以过滤掉最大 数量记录的条件必须写在 WHERE 子句的末尾。 例如: (低效,执行时间 156.3秒) SELECT … FROM EMP E WHERE SAL 50000 AND JOB = ‘MANAGER AND 25 (SELECT COUNT(*) FROM EMP WHERE MGR=E.EMPNO); (高效,执行时间 10.6秒) SELECT … FROM EMP E WHERE 25 (SELECT COUNT(*) FROM EMP WHERE MGR=E.EMPNO) AND SAL 50000 AND JOB = ‘MANAGER; 在进行多表关联时,多用 Where 语句把单个表的结果集最小化,多用聚合 函数汇总结果集后再与其它表做关联,以使结果集数据量最小化 查询优化基本准则详解 * 减少对表的查询 在含有子查询的 SQL语句中,要特别注意减少对表的查询 例如: 低效 SELECT TAB_NAME FROM TABLES WHERE TAB_NAME = ( SELECT TAB_NAME FROM TAB_COLUMNS WHERE VERSION = 604) AND DB_VER= ( SELECT DB_VER FROM TAB_COLUMNS WHERE VERSION = 604) 高效 SELECT TAB_NAME FROM TABLES WHERE (TAB_NAME,DB_VER) = ( SELECT TAB_NAME,DB_VER) FROM TAB_COLUMNS WHERE VERSION = 604) 查询优化基本准则详解 * 用EXISTS替代IN 在许多基于基础表的查询中,为了满足一个条件,往往需要对另一个表 进行联接。在这 种情况下, 使用 EXISTS(或 NOT EXISTS)通常将提高查询的 效率。使用 exists 而不用 IN 因为 Exists 只检查行的存在,而 in 检查实际值 例如: 低效 SELECT * FROM EMP (基础表) WHERE EMPNO 0 AND DEPTNO IN (SELECT DEPTNO FROM DEPT WHERE LOC = ‘MELB) 高效 SELECT * FROM EMP (基础表) WHERE EMPNO 0 AND EXISTS (SELECT ‘X FROM DEPT WHERE DEPT.DEPTNO = EMP.DEPTNO AND LOC = ‘MELB) 用 IN 的 SQL 性能总是比较低,原因是: 对于用 IN 的 SQL 语句 ORACLE 总是试图将其转换成多个表的连接,如果转换 不成功则先执行 IN里面的子查询,再查询外层的表记录如果转换成功就转换 成多个表的连接。因此 不管理怎么,用 IN 的 SQL 语句总是多了 一个转换的 过程。因此在业务密集的SQL当中尽量不采用IN操作符。 查询优化基本准则详解 * 用NOT EXISTS替代 NOT IN 在子查询中, NOT IN子句将执行一个内部的排序和合并。 无论在哪种情况 下, NOT IN都是最低效的 (因为它对子查询中的表执行了一个全表遍历)。 为了避免使用 NOT IN ,我们可以把它改写成外连接(Outer Joins)或 NOT EXISTS. 例如: SELECT … FROM EMP WHERE DEPT_NO NOT IN (SELECT DEPT_NO FROM DEPT WHERE DEPT_CAT=A); 为了提高效率。改写为: SELECT …. FROM
您可能关注的文档
- 2016年秋季版2017七年级语文下册第六单元第23课带上她的眼睛课件汇编.ppt
- 2016年秋季版七年级道德与法治下册3.7.1单音与和声课件3汇编.ppt
- office办公软件珍藏剖析.ppt
- OPPO手机零售店管理八大要素剖析.ppt
- 2016年第一季度成都报业零售市场调查报告汇编.docx
- 2016年秋季版2017七年级语文下册第五单元第17课紫藤萝瀑布课件1汇编.ppt
- 2016年第一季度全国各省PPP项目大盘点汇编.doc
- NT系列控制器操作说明剖析.ppt
- 2016年第三次全国大联考【山东卷】语文汇编.doc
- OBO雷电防护系统简介剖析.ppt
- 《GB/Z 44363-2024致热性 医疗器械热原试验的原理和方法》.pdf
- GB/T 16716.6-2024包装与环境 第6部分:有机循环.pdf
- 中国国家标准 GB/T 44376.1-2024微细气泡技术 水处理应用 第1 部分:亚甲基蓝脱色法评价臭氧微细气泡水发生系统.pdf
- 《GB/T 44376.1-2024微细气泡技术 水处理应用 第1 部分:亚甲基蓝脱色法评价臭氧微细气泡水发生系统》.pdf
- GB/T 44376.1-2024微细气泡技术 水处理应用 第1 部分:亚甲基蓝脱色法评价臭氧微细气泡水发生系统.pdf
- 中国国家标准 GB/T 44315-2024科技馆展品设计通用要求.pdf
- GB/T 44305.2-2024塑料 增塑聚氯乙烯(PVC-P)模塑和挤塑材料 第2部分:试样制备和性能测定.pdf
- 《GB/T 44315-2024科技馆展品设计通用要求》.pdf
- GB/T 44315-2024科技馆展品设计通用要求.pdf
- GB/T 39560.9-2024电子电气产品中某些物质的测定 第9 部分:气相色谱-质谱法(GC-MS)测定聚合物中的六溴环十二烷.pdf
最近下载
- 理财教材《小狗钱钱》.pdf
- 护理品管圈问题解决型之提高慢性肾功能不全患者饮食指导知晓率.pptx VIP
- 复旦投毒案林森浩(详细的参考资料整理).docx
- Axure RP原型设计图解微课视频教程(Web+App)(刘刚)PPT全套完整教学课件.pptx
- 2024年国家电网招聘之财务会计类题库附参考答案(轻巧夺冠).docx
- 1精益管理倡导者培训.pptx
- 整本书阅读 《朝花夕拾》(同步课件) 七年级语文上册(统编版2024).pptx
- 2024-2029年中国房地产投资行业发展分析及投资风险预警与发展策略研究报告.docx
- 文旅融合背景下的文化遗产活化措施.pptx VIP
- 非物质文化遗产活化策略PPT.pptx VIP
文档评论(0)