不胜人生一场醉

欢迎来到不胜人生一场醉>>   | 首页 资源中心 | 软件开发 | 软件工程 | 艺术长廊 | 数据仓库专区 | 你的故事我的歌 | 数据库专区 | ITPUB论坛

Oracle性能优化视频学习笔记-诊断和调优工具

发表人:PercyWang | 发表时间: 2007年十二月11日, 01:02

这个章节恐怕是最长的了,耗时2个多小时,总算听完了,先别管效果如何了,呵呵;恐怕还得再听一次

诊断和工具
show parameter background_dump_dest;
指出告警日志文件的目录
log_checkpoint_to_alert=true
记录检查点信息和未完成的检查点
记录归档时间
用户跟踪文档
跟踪用户发布的SQL信息
alter session set sql_trace=true;
能够在会话一级进行SQL操作跟踪
execute dbms_system.set_sql_trace(sid号,子序列号,true)
跟踪会话中相应的SQL
使用tkprof解析跟踪的SQL跟踪文件
catproc.sql用来生成创建跟踪的包

视图和工具
V$XXX,动态性能视图
v$lock,v$..
base on x$table and listed in v$fixed_table
is v_$xxx的同义词
当前状态视图V$session,v$open_cursor,v$session_wait
累加视图V$sys_event,...
动态视图v$parameter
DBA_XXX,数据字典
DBA_tables,DBA_Segments,DBA_Tab_Columns,DBA_Clusters,DBA_INDEXES,INDEX_STATS,INDEX_HISTOGRAM,DBA_TAB_HISTOGRAMS
以上统计信息是静态的,需要dbms_stats和analyze来完成更新
StatSpack
Oracle9i新的功能包
UTLBstat.sql,UtlEstat.sql script取两者脚本执行之间的性能比较
企业管理器
等待事件
Oracle诊断和优化packs

v@sysstat启动之后所有的系统统计
select name,value from
v@sysstat
where name in ('db block gets','consistent gets','physical reads');
hitrate=(db block gets+consistent gets)/(physical reads'+db block gets+consistent gets)

v@sgastat SGA区的统计信息
select * from
v@sgastat
where pool='shared pool' and name='free memory'

v@event_name,v@system_event
事件信息详细清单和统计

select sum(pins-reloads)/sum(pins) "lib cache" from v$library
库缓存命中率

select (sum(gets-getmisses))/sum(gets) "direc_hit" from v$rowcache
数据字典命中率

v$db_cache_advice预计缓冲区的大小和影响
v$pgastat
Disk
v$dbfile
v$tempstat
v$tempfile
v$filestat
v$datafile
v$segment_statist
v$log,v$log_history
Contention
v$latch,v$lock,v$rollname,v$rollstat,v$waitstat

关于会话统计信息
select
a.statistic#,a.name,a.class,
b.sid,b.statistic#,b.value,
c.sid,c.serial#,c.username,c.osuser
from v$statname a,v$sesstat b,v$session c
where a.statistic#=b.statistic#
and b.sid=c.sid

关于会话等待事件的统计
select
a.sid,a.event,a.total_waits,a.total_timeouts,a.time_waited,a.averate_wait,a.max_wait,
b.event#,b.name,b.parameter1,b.parameter2,b.parameter3,
c.sid,c.seq#,c.event,c.p1/2/3 c.p1/2/2 text,c.p1/2/3 raw,c.wait time,c.seconds_in_wait,c.state
from v$session_event a,v$event_name b,v$session_wait c
where a.sid=c.sid
and a.event=b.name
and b.name=c.event

Statspack
需要100兆空间(8i开始提供)
且TIMED_STATISTICS=true
alter system set timed_statistics=true
spcreate.sql安装Statspack
statspack.snap手工收集统计信息
spauto.sql自动收集统计信息
spreport.sql产生统计信息报告

show parameter job_queue_processes>0方可自动收集统计信息
job_queue_processes>0即OK

第一步,创建statpack统计表空间
create tablespace perfstat datafile '......' size 100M extent management local;
第二步
@%ORACLE_HOME%RDBMSADMINSPCREATE.SQL
创建statpack数据字典和用户
并且输入刚才创建的表空间perfstat
第三步,切换用户
connect perfstat/perfstat
手工执行拍照
execute statpack.snap
第四步,创建自动拍照脚本,默认1个小时执行一次
@%ORACLE_HOME%RDBMSADMINSPAUTO.SQL
select job,log_user,last_date,next_date,interval from user_jobs
第五步,运行spreport.sql
select snap_id from stats$snapshot;

report内容19部分
数据库和实例名称
快照时间起至时间
各当前缓存大小
负载load profile
实例的效率百分比
共享池统计信息
Top5事件
性能较差的SQL by Diks,By CPU,By memory
表空间I/O统计数据
数据文件I/O统计数据
缓冲池统计
实例恢复统计
PGA内存统计
回滚段统计
锁存器活动的统计
数据字典缓冲区统计
库缓冲区统计
SGA内存概要统计
初始化参数值列表

@sppurge.sql可以删除快照信息
使用DBA删除快照和统计信息
执行spdrop即可


UTLBSTAT,UTLESTAT脚本可以做简单的快照统计
TIMED_STATSTICS=TRUE
run UTLBSTAT
run UTLESTAT
查看report.txt报告

企业管理器

Oracle Performance Manager

调优方法论
明确调优范围
收集数据
编辑数据和规则
分析数据
评估方案
验证方案

发表评论

标题

在此添加评论

称呼

邮箱地址(可选)

个人主页(可选)


authimage



Valid XHTML 1.0 Strict and CSS. Powered by pLog
Design by Blog.lvwo.com