- 5
- 0
- 约 70页
- 2017-04-27 发布于四川
- 举报
Oracle开发优化基本
Oracle开发优化基础v1.0_cn
由PD团队于2016年制作;数据库开发员需要注意些什么?
如何快速定位及认知性能问题点
如何编写高性能SQL – 基础知识
如何编写高性能SQL – PLSQL优化Tips;数据库开发员需要注意些什么?
一般现状
自身问题
缺乏经验:年轻的开发员缺乏数据库基础知识和优化经验
偏重实现:项目时间紧张,更注重应用功能实现,少关注数据库性能
应用问题
黑盒使用:数据库像个黑盒子,开发需要访问通用API且其框架机制复杂隐蔽
模块设计:逻辑设计阶段还未想透, SQL实现在还未模块化,就先上马运行;数据库开发员需要注意些什么?
不过也请牢记:在尝试使用此优化前确保你的业务逻辑正确,在正确的前提下保证优化的性能
在尝试开发或优化时,确保你了解你正在使用的数据库
何种架构?(是RAC还是单实例?)
举例:sequence order问题为了避免由于sequence争用而造成锁等待,一般会sequence默认为cache 20 noorder,这可以看作是Oracle的一种默认优化,但是对于RAC下,就会存在无序问题
;数据库开发员需要注意些什么?
哪个版本?
举例:不同Oracle数据库版本,默认排序不同当数据需要排序时,你的语句中没有用到ORDER BY,你把它看作是一种优化,顺手为之,但是会有问题;数据库开发员需要注意些什么?
在尝试开发或优化时,确保你了解你所使用的Oracle内部函数
好用 ≠ 可用,不要给自己和DBA造成不必要的麻烦
举例:TABLE函数造成的性能问题Tivoli监控发现某数据库主机的CPU利用率比较高。经过查看发现, sql_id为ds7vkxa14xt70的SQL语句每次执行消耗超过30亿次逻辑读。且由于多个session同时执行相同语句,访问相同数据,引起相互资源争用。;数据库开发员需要注意些什么?
学习优化技术需与时俱进,不能总以老经验看待新事物
举例:关于EXISTS使用问题
使用EXISTS替代IN?
使用NOT EXISTS替代NOT IN?
使用表连接替代EXISTS?
;数据库开发员需要注意些什么?
如何做到性能下降较少的DB应用开发
懂得从DB角度来看潜在的应用问题
了解并承认DB处理瓶颈
理解Oracle基本操作
避免一些不佳的编码 (如单个SQL运行没问题,但在Oracle整体会有问题)
了解优化器行为,编写Oracle所期望的SQL
了解所用到的数据
除了在分支逻辑中意识到处理不同的业务数据之外,也请对所处理的数据量进行必要的预估处理
;如何快速定位及认知性能问题点
应用通过DB连接驱动程序(JDBC驱动等),访问数据库,SQL发出后由DB内部处理后返回
;如何快速定位及认知性能问题点
数据库处理时间
通过下图,了解哪些因素可能会成为瓶颈。可以看到数据库处理时间被细分成三部分:
1)CPU处理时间 2)等待时间【资源等待,同步处理】3)等待时间(磁盘I/O处理);如何快速定位及认知性能问题点
应用变得反应很慢!是因为?(开发员角度)
非SQL原因
需对应用、设置、网络等进行审查
SQL原因
仅一两个SQL需要优化
非常多的SQL需要优化,如多个SQL的单一化SQL修改等 (则需要审查整个应用程序逻辑及设置合理性)
;如何快速定位及认知性能问题点
应用调整
;如何快速定位及认知性能问题点
如何使数据库处理得更快
有效利用CPU资源
减少等待时间
降低磁盘I/O
降低同步处理所需时间;如何快速定位及认知性能问题点
开发员的SQL问题定位思路
DBA指出的问题SQL及当前正开发测试或正运行的SQL
考虑本质影响因素
是否有效使用CPU
磁盘IO的使用情况
同步处理情况
查看外在表现形式
锁等待情况
表连接和索引使用情况
软硬解析情况
扫描读取情况
分析SQL使用工具命令
set autotrace
execute plan(会在介绍执行计划部分讲到)
sql_trace
;如何快速定位及认知性能问题点
set autotrace
on 和 traceonly 的区别是后者不产生sql的输出结果,一般用后者。
前者不实际执行,只看执行计划;后者不实际执行,只看io
使用autotrace分析sql时最好执行两次,看第2次执行的输出
;如何快速定位及认知性能问题点
Session级别的sql_trace (1)
获取trace文件所在的路径,以及文件名:
对获取的trace文件使用ktprof进行格式化
关闭SQL_TRACE;如何快速定位及认知性能问题点
Session级别的sql_trace (2)
查询抓取sid, serial#
调用dbms_system.set_sql_trace_in_session(使用完后,记得关闭追踪,sql_t
您可能关注的文档
- NO.2研究问题确定.ppt
- mynewteachersIntroduction高一英语第2单元教案.ppt
- node.js入门教程深入浅出Nodejs实战财务系统第36课.ppt
- noip教程_动态规划的优化.ppt
- noonenonenothing分别.ppt
- noip2005提高组解题报告[转].ppt
- NMC的技术顾问培训.ppt
- NGB1体机方案详解.ppt
- Notes开发_基础技巧.ppt
- no_one_none与nothing_的区别.ppt
- 中国国家标准 GB/Z 10062.32-2025锥齿轮承载能力计算方法 第32部分:锥齿轮和准双曲面齿轮的ISO评价体系 胶合承载能力算例.pdf
- 《GB/Z 10062.32-2025锥齿轮承载能力计算方法 第32部分:锥齿轮和准双曲面齿轮的ISO评价体系 胶合承载能力算例》.pdf
- GB/T 46881-2025数字化供应链 追溯体系通用要求.pdf
- GB/Z 10062.32-2025锥齿轮承载能力计算方法 第32部分:锥齿轮和准双曲面齿轮的ISO评价体系 胶合承载能力算例.pdf
- 中国国家标准 GB/T 46881-2025数字化供应链 追溯体系通用要求.pdf
- 4、《建筑与市政施工现场安全卫生与职业健康通用规范》孙其珩(1).pdf
- 25-26学年政治统编版必修4课件:5.2 社会历史的发展.pptx
- 25-26学年政治(部编版)选择性必修第二册课件:1.2.2 尊重知识产权.pptx
- 25-26学年政治统编版必修4课件:6.3 价值的创造和实现.pptx
- 25-26学年政治(部编版)选择性必修第二册课件:第1单元 第4课 知能双测8.pptx
原创力文档

文档评论(0)