- 1、本文档共67页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
应用程序开发教程C版 国家级骨干高职院校中央财政支持的重点建设课程建设成果 教学ppt课件 董久敏 06专题六 数据库的优化
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 …) ??? 很难优化,随着数据量的增加性能的风险很大。 替代方案 设计时增加冗余字段 如在电费档案中冗余抄表区段号、在收费表中冗余电价代码等; 临时表 化整为零,首先根据参数条件从1个大表中把少量数据插入临时表,再用临时表去关联第2张大表; 先把中间数据放在临时表里,进行插入、删除、更新,不写日志文件,最后INSERT到正式表中; 光标处理 对于同时存在很多分支条件的情况尤其适用,用光标把字段读到变量里,if…else…,避免复杂的where条件 避免使用 ‘ * ‘ 当你想在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语句都可以用其他方式重写. 尽量避免使用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 INDE
您可能关注的文档
- 川教版信息技术九上第1课《多媒体作品的设计》课件_2.ppt
- 川教版信息技术九下第2课《机器人的编辑系统》ppt课件.ppt
- 川教版信息技术八下第12课《建立自己的网站》ppt课件_2.ppt
- 川教版信息技术四年级上册 第1课 计算机的软件课件.ppt
- 川教版信息技术四年级上册ppt课件.ppt
- 川教版八上全面内战的开始课件.ppt
- 川教版八上第12课《红军长征》ppt课件_2.ppt
- 川教版八上第14课全国抗日战争的开始(共24张)PPT课件.ppt
- 川教版八上第14课《全国抗日战争的开始》ppt课件_2.ppt
- 川教版八年级上册主题活动3《抗日救亡歌曲演唱比赛》精品课件.ppt
- 2025年一级建造师考试《水利水电工程管理与实务》冲刺必刷卷.docx
- 2025年一级建造师考试《水利水电工程管理与实务》逆袭破题卷1.docx
- 2025年一级建造师考试《市政工程管理与实务》冲刺必刷卷 .docx
- 2025年一级造价工程师考试《建设工程计价》预习卷.docx
- 2025年一级造价工程师考试《建设工程造价管理》预习卷.docx
- 2025年一级造价工程师考试《建设工程造价案例分析(安装专业)》预习卷.docx
- 2025年一级造价工程师考试《建设工程造价案例分析(土建专业)》预习卷.docx
- 2025年中级会计考试《会计实务》冲刺提分卷.docx
- 2025年中级会计考试《财务管理》冲刺提分卷.docx
- 2025年中级会计考试《财务管理》全真模拟卷.docx
最近下载
- 2024年出版专业资格考试《基础知识》(中级)真题及答案.pdf VIP
- 高壓电机修理质量过程控制管理办法.doc VIP
- 2025年河北石家庄学院公开选聘事业单位工作人员25名备考题库及答案解析.docx VIP
- 鼻炎中医PPT课件.pptx VIP
- 新能源基础知识PPT精品课件-.pptx VIP
- 2025年河北石家庄辛集市事业单位公开招聘工作人员191名备考题库及答案解析.docx VIP
- 2025年南京江北新区公开招聘社区工作者60人笔试备考题库及答案解析.docx VIP
- 一年级上册生字练字帖.docx VIP
- 2025年天翼云解决方案架构师认证考试题库-上(单选题汇总).docx VIP
- 克莱门特w3000用户手册(中文版).pdf VIP
文档评论(0)