ITPub博客

首页 > Linux操作系统 > Linux操作系统 > Oracle性能优化视频学习笔记-诊断和调优工具

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

原创 Linux操作系统 作者:bq_wang 时间:2007-12-11 00:00:00 0 删除 编辑
这个章节恐怕是最长的了,耗时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

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

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/6517/viewspace-145583/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2007-12-07

  • 博文量
    412
  • 访问量
    1103107