交大徐汇校区浩然大楼704教室
0926调优.
ocm:调优+网格,网格不仅仅是rac.
调优包含2个:
proformance tuning:保健医生.(凭一两次的诊断,不好诊断.)亚健康,不是看病.
sql tuning
网格:grid control/rac/
甲方:ocp
乙方:ocm
巡检:看参数,看日志,
健康检查: dbv,节假日进行.statspack/awr
巡检和健康检查是两个报价.
优化
ocp中有一个章节,proactive mainteinance.
性能调优的范围:
--应用:类似 西方医学,头痛医头,副作用小
.写的不好的sql,
--实例:类似 东方医学,副作用大,就是靠经验(来自oracle手册的经验)
.内存
.i/o
awr ->advisor
调优是用plsql做的.
优化步骤:
--从上往下优化:
性能tuning
ha
安全security
优化点在于第三范式.
第一er图设计: 概念模型的er图(来自客户需求)
->第三范式(分析)
->物理设计(设计)
->反范式(是设计阶段的优化,针对数据库做优化,为了优化,要牺牲一些范式)
优化
硬件,网络,数据库 (三者合称平台,platform) 占 1/2
应用 占 1/2
parse time
hard parse time --sql有问题.
最常见优化问题:
sql语句 80%是属于sql语句的调优.
会议管理
优化的目标:
减少响应时间:交互类(sina.com)
增加吞吐量:交易类(银行atm机器)
增加负载能力
减少恢复时间
db time = db wait (instance tuing ) + db cpu (sql tuning)
db wait 和 db cpu 差不多,扩容.
db cpu
|
|
|
|
|____________db wait
优化步骤:(从上到下)
优化设计
优化应用
优化内存
优化i/o
优化争用
优化操作系统
测试:
hp mercury
ibm rational
巡检报告(使用rda)
健康检查报告
调优报告.
rda:perl写的,rda生成的报告是html格式.解压缩后直接运行就可以.
能读懂oracle的报告.
遇到问题,不要慌,心态好.
做工程师,戒骄戒躁.
经验 约等于 训练
统计表和等待事件
实例恢复->mttr->checkpoint
找到sql后,在外边执行此sql,效果跟在软件中执行此sql,是不一样的.
因为sql是有上下文的.
sr:
adr
alert.log
trace文件.
v$会保存在awr中.
wait: i/o;lock;memory
ide和sata 占用cpu,scsi不占用cpu资源.
latches :sql cursor的锁.栓
数据的锁叫做:locks
教材在acegene网站上.
wait time_waited av
微妙的视图
毫秒的视图
db time :os time 和 network time不在db time 里边.
度量metric:在累计统计中的变动率,"化验报告",
基线:从正常的数据库中得到的值
delta工具:statspack/awr
number of waits
histograms 直方图.
资源不够,
资源争夺:不忙,很慢
mvc:model view control
ebs 使用plsql开发的.
threshold :阈值 (yu),也就是临界值.
基线:正常值
基线之上的% :threshold
不同的业务系统,有不同的基线
某种业务系统的基线,由该业务系统获得.
threshold
静态基线:一周的平均值
动态基线:动态的值相连.
下午:
statspack
10g中statspack 和 awr 可以同时使用
statspack将db中当前v$的当前值抓出来.
rdbms/admin
spcreate.sql
rda.sh回车.
@spauto.sql,其中.sql可以省略.
什么时候慢,什么时候抓.
单个抓:begin=end
用了statspack 就不要用awr
contention-争夺.
awr(plsql写的.):有后台进程mmon,mmon从内存sga中直接读取数据.
plsql作业,一定要看.
ash:handing analysis,
active session history:跟踪会话的状态.
95年接触oracle + unix
*reactive tuning 响应式调优.
数据库性能调优 和 性能调优 不是同一个事情.
ash
awr
hang analysis
内存读取模式.
*优化共享池(看top wait )
library cache: 存储的是 sql的可执行代码 或者 pl sql.的可执行代码.
sql的算法:执行计划,这是db自动确定的: rule base ,cost base.
cursor打开后 在 uga中.
uga不一定在sga中.
专用模式:uga 在pga中
共享模式:uga 在shared pool中
soft parsing : 搜索杂乱的信息链,代码解析.
hard parsing : 创建游标.
mutex:互斥体,是sql解析中的一个单位.
latch多:并发用户很多,shared pool较小.
时间模式@@@@
pin:反复执行sql
共享游标:
软解析:形成latch.
避免解析:
估计共享池的大小
大对象:sp->lp
专用模式:
pga:
stackspace +uga (user session data + cursor state )
中间件,有连接池
共享模式:uga 在shared pool中
现在的系统90%都是专用模式.
buffer cache
缓存的是数据.
不同的数据的缓存,数据库都是操作内存中的数据.
数据库运行机制中的锁,叫做latch,栓
default : 先进先出 ,--食堂
keep :驻留在其中,不退出, 不调整--专席,包厢 代码中要写storage子句
recycle:循环使用的,vip,高优先级. 不调整 --点菜
buffer cache 是基于块做缓存的.
cache buffer chains latch contention :热点块.解决方法是减少块的大小.
buffer cache 命中率高不一定是最优的性能,因为还有latch.
create index storage (buffer_pool,keep .....)
oltp:块小好
dw,多媒体:块大好.
ckpt执行时间不定.由mttr决定.ckpt不能由手工命令发出.
alter system flush buffer cache --将buffer cache 写入到磁盘中.
*自动共享内存管理.
sga_max_size不能比share memory共享内存(unix linux)大.
contiguous memory chunks ->granules
内存代理体系结构
mmon
mman
* checkpoint 和redo 优化 ()
传输更改的数据到磁盘,
控制mttr
redo
misson critical : HA+porformance + security
ckpt:写数据文件头,
写控制文件头.注明:上一次同步是在哪个时间.
写的时间间隔不一样.
日志写入器的写入时机(写入时没有算法.):redo一定要放在最快的设备上面.
commit
redo log buffer 1/3写满的时候
每三秒
before DBWn write
检查点是做实例恢复.
recovery= redo=rollforward 前滚.
undo=rollback
日志文件大小和ckpt时间共同决定了mttr,保证ha指标.
归档的时候,oracle会停住,因为不能处理交易.
切换:30分钟切换一次
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/161195/viewspace-615609/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/161195/viewspace-615609/