- 1、本文档共29页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
PLSQL程序优化与性能分析方法.doc
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性能优化系列
PLSQL程序优化原则
导致性能问题的内在原因
导致系统性能出现问题从系统底层分析也就是如下几个原因:
CPU占用率过高,资源争用导致等待
内存使用率过高,内存不足需要磁盘虚拟内存
IO占用率过高,磁盘访问需要等待
PLSQL优化的核心思想
PLSQL优化实际上就是避免出现“导致性能问题的内在原因”,实际上编写程序,以及性能问题跟踪应该本着这个核心思想去考
您可能关注的文档
最近下载
- GB∕T 37903-2019 数控压力机可靠性评定方法.pdf
- SL 274-2020 碾压式土石坝设计规范.docx
- 《植物生产与环境》课程标准.pdf VIP
- 《植物生产与环境》课程标准.pdf
- bosch博世 GBH 5-38 X GBH 5-38 D 使用说明书.pdf
- 最新版入团志愿书模板.pdf
- 职业技术学院园林技术专业《植物生产环境》课程标准 .pdf VIP
- 国内某600MW机组双烟道直流炉省煤器旁路特性研究.pdf VIP
- 《中医基础理论》课件——津液的代谢和生理功能.pptx VIP
- 8 推翻帝制 民族觉醒 第一课时说课稿 -2023-2024学年道德与法治五年级下册统编版.docx
文档评论(0)