上海交大培训记录(20090926)

交大徐汇校区浩然大楼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/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值