- 1、本文档共41页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
oracle优化(个人总结)
** SQL Tunning Tips ** sql 语句的编写原则和优化 sql 语句的编写原则和优化 Tunning Tip的各个方面 1.不要让Oracle做得太多; 2.给优化器更明确的命令; 3.减少访问次数; 4.细节上的影响; 1.不要让Oracle做得太多 避免复杂的多表关联 select … from user_files uf, df_money_files dm, cw_charge_record cc where uf.user_no = dm.user_no and dm.user_no = cc.user_no and …… and not exists(select …) ??? 很难优化,随着数据量的增加性能的风险很大。 避免使用 ‘ * ‘ 当你想在SELECT子句中列出所有的COLUMN时,使用动态 SQL列引用 ‘*’ 是一个方便的方法.不幸的是,这是一个非常低 效的方法. 实际上,ORACLE在解析的过程中, 会将’*’ 依次转 换成所有的列名, 这个工作是通过查询数据字典完成的, 这意 味着将耗费更多的时间; 只提取你所要使用的列; 使用别名能够加快解析速度; 避免使用耗费资源的操作 带有DISTINCT,UNION,MINUS,INTERSECT,ORDER BY的 SQL语句会启动SQL引擎执行耗费资源的排序(SORT)功能. DISTINCT需要一次排序操作, 而其他的至少需要执行两次 排序. 例如,一个UNION查询,其中每个查询都带有GROUP BY子句 , GROUP BY会触发嵌入排序(NESTED SORT) ; 这样, 每个 查询需要执行一次排序, 然后在执行UNION时, 又一个唯一 排序(SORT UNIQUE)操作被执行而且它只能在前面的嵌入 排序结束后才能开始执行. 嵌入的排序的深度会大大影响查 询的效率. 通常, 带有UNION, MINUS , INTERSECT的SQL语句都可以 用其他方式重写. 用EXISTS替换DISTINCT 例如: 低效: SELECT DISTINCT DEPT_NO,DEPT_NAME FROM DEPT D,EMP E WHERE D.DEPT_NO = E.DEPT_NO 高效: SELECT DEPT_NO,DEPT_NAME FROM DEPT D WHERE EXISTS ( SELECT ‘X’ FROM EMP E WHERE E.DEPT_NO = D.DEPT_NO); 用UNION-ALL 替换UNION ( if possible) 当SQL语句需要UNION两个查询结果集合时,这两个结果集合会以 UNION-ALL的方式被合并, 然后在输出最终结果前进行排序. 举例: 低效: SELECT ACCT_NUM, BALANCE_AMT FROM DEBIT_TRANSACTIONS WHERE TRAN_DATE = ’31-DEC-95’ UNION SELECT ACCT_NUM, BALANCE_AMT FROM DEBIT_TRANSACTIONS WHERE TRAN_DATE = ’31-DEC-95’ 高效: SELECT ACCT_NUM, BALANCE_AMT FROM DEBIT_TRANSACTIONS WHERE TRAN_DATE = ’31-DEC-95’ UNION ALL SELECT ACCT_NUM, BALANCE_AMT FROM DEBIT_TRANSACTIONS WHERE TRAN_DATE = ’31-DEC-95’ 2. 给优化器更明确的命令 自动选择索引 如果表中有两个以上(包括两个)索引,其中有一个唯一性 索引,而其他是非唯一性. 在这种情况下,ORACLE将使用唯一性索引而完全忽略非唯 一性索引. 举例: SELECT ENAME FROM EMP WHERE EMPNO = 2326 AND DEPTNO = 20 ; 这里,只有EMPNO上的索引是唯一性的,所以EMPNO索 引将用来检索记录. TABLE ACCESS BY ROWID ON EMP INDEX UNIQUE SCAN ON EMP_NO_I
您可能关注的文档
- HT404-461-04燃油泄放系统.pdf
- HT404-533-02粪便污水管系布置图(黑水).pdf
- HT404-541-06舱室通风管系布置图.pdf.pdf
- HT404-533-03卫生水疏排水管系布置图(灰水).pdf
- http服务器方案介绍.ppt
- I1503、香肠制作工艺配方.doc
- HUS安防系统技术方案模版.doc
- IAPWS-IF97水物性计算Fortran90程序.doc
- HX-MS-06安全生产管理制度.doc
- IATA协议英文版本(98v).doc
- 肺癌基础知识培训课件.pptx
- 肺癌介入治疗课件.pptx
- 山东省潍坊市临朐县2024—2025学年高一下学期开学考试生物试题含答案.docx
- 山东省潍坊市某校2024-2025学年高一下学期开学考试日语试题含答案.docx
- 山东省新泰市2024-2025学年高三下学期第一次阶段测试地理试题含答案.docx
- 关于春节的诗句(14篇).doc
- 山东省潍坊2024-2025学年高二下学期第一次检测英语试题含答案.docx
- 山东省烟台市莱州市2024-2025学年高二下学期开学考试生物试题含答案.docx
- 关于春节日记锦集五篇.doc
- 山东省烟台市莱州市2024-2025学年高三上学期开学测试地理试题(B)含答案.docx
文档评论(0)