- 1、本文档共30页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
(PLSQL程序优化和性能分析方法
PLSQL程序优化和性能分析方法 沈阳东软软件股份有限公司 文件编号: TD 文档编号 版本号 1.0 分册名称 第 册/共 册 总页数 正文 附录 编制 张悦 审批 生效日期 沈阳东软软件股份有限公司
版本号 更改条款及内容 更改人 审批人 更改日期
1. 前言 5
1.1 目的 5
1.2 文档说明 5
1.3 词汇表 5
1.4 参考资料 5
2. PLSQL程序优化原则 6
2.1 导致性能问题的内在原因 6
2.2 PLSQL优化的核心思想 6
2.3 ORACLE优化器 6
2.4 PLSQL优化 7
2.4.1 选择最有效率的表名顺序 7
2.4.2 WHERE子句中的连接顺序 8
2.4.3 SELECT子句中避免使用 ‘ * ‘ 8
2.4.4 用EXISTS替代IN 8
2.4.5 用NOT EXISTS替代NOT IN 9
2.4.6 用表连接替换EXISTS 9
2.4.7 用EXISTS替换DISTINCT 10
2.4.8 减少对表的查询 10
2.4.9 避免循环(游标)里面嵌查询 11
2.4.10 尽量用union all替换union 13
2.4.11 使用DECODE函数来减少处理时间 13
2.4.12 group by优化 13
2.4.13 尽量避免用order by 14
2.4.14 用Where子句替换HAVING子句 14
2.4.15 使用表的别名(Alias) 14
2.4.16 删除重复记录 14
2.4.17 COMMIT使用 15
2.4.18 减少多表关联 15
2.4.19 批量数据插入 15
2.5 索引使用优化 16
2.5.1 避免在索引列上使用函数或运算 16
2.5.2 避免改变索引列的类型. 17
2.5.3 避免在索引列上使用NOT 17
2.5.4 用=替代 18
2.5.5 避免在索引列上使用IS NULL和IS NOT NULL 18
2.5.6 带通配符(%)的like语句 18
2.5.7 总是使用索引的第一个列 19
2.5.8 多个平等的索引 19
2.5.9 不明确的索引等级 19
2.5.10 自动选择索引 19
2.5.11 使用提示(Hints) 19
2.5.12 表上存在过旧的分析 20
2.5.13 表上存在并行 21
2.5.14 关于索引建立 21
3. PLSQL程序性能问题测试方法 21
3.1 性能问题分析 21
3.2 Expain Plan分析索引使用 22
3.3 TOPSQL分析 24
3.4 针对性语句搜索 28
3.5 后台存储过程跟踪 29
3.6 性能监控 30
4. 性能测试工具设计思想 31
前言
目的
性能测试是测试中比较重要的工作,性能测试应分为压力的测试和性能的测试,其中性能问题中绝大部分都是由于程序编写的不合理、不规范造成的。本文档说明了程序中常见的不优化的脚本编写,导致的性能问题,并且在也描述了怎样去跟踪和解决程序上的性能问题的方法。
在最后一章里面描述了做一个白盒测试工具测试性能问题的设计思想。
文档说明
本文档只说明PLSQL编写的优化问题,不包括ORACLE本身的性能优化(内存SGA、系统参数、表空间等)、操作系统的性能问题和硬件的性能问题。对于PLSQL程序优化方面的内容有很多,本文档列出在我们实际工作中一些常见的情况。本文档难免有不正确的地方,也需要大家给予指正。
本文档举例说明的问题语句不是实际程序中真正存在的,只是让大家能看起来更容易理解,但这些语句也不代表在我们程序中其他部分语句不存在这些问题。
举例说明中的语句采用的是社保核心平台的数据字典,在举例描述中没有标明表名和字段名的含义,还需单独参考。
词汇表
词汇名称 词汇含义 备注
参考资料
编号 资料名称 作者 日期 出版单位 《ORACLE SQL性能优化系列WHERE子句中的连接顺序 ORACLE采用自下而上的顺序解析WHERE子句,根据这个原理,表之间的连接必须写在其他WHERE条件之前例如:
(低效) SELECT ab01.aab001,ab02.aab051 FROM ab01,ab02 WHERE ab02.aae140=’31’ AND ab01.aab001=ab02.aab00
您可能关注的文档
最近下载
- 《系统动力学》全套教学课件(共15章完整版).pptx
- 数学必修一导学案全册:必修一导学案与练习全册.pdf VIP
- [兴安盟]2024年内蒙古兴安盟盟直事业单位引进人才35人 笔试历年典型考题及考点剖析附答案详解.doc
- 律师业务档案卷宗封面格式——司律通字(1991)153号.docx
- 2024年新改版苏教版六年级下册科学全册知识点(精编版) .pdf
- YDT 2319-2020数据设备用网络机柜.pdf
- 2025年《可爱的中国》新疆地方教材(小学版)教案范文.docx VIP
- 《星巴克的中国市场营销策略分析的调查报告》3100字.pdf VIP
- 建筑工程技术毕业设计开题报告.docx VIP
- 施工图说明模板及样图-建筑.pdf VIP
文档评论(0)