ITPub博客

首页 > Linux操作系统 > Linux操作系统 > Oracle统计信息以及statspack怎么使用

Oracle统计信息以及statspack怎么使用

原创 Linux操作系统 作者:it-msxq 时间:2011-03-26 08:20:33 0 删除 编辑

数据库工作
任务 计算系统某参数值的命中率
时间 2011-3-8
作业者 胡国青

显示 命令 提示 说明
Show parameter timed 

Alter system set timed_statistics=FALSE; 平时不做系统统计时,把参数设置为假 消耗资源
select name, value from v$sysstat where name in('db block gets', 'consistent gets', 'physical reads');

select 1-('physical reads' / ('db blocks gets' + 'consistent gets')) hit from dual; logical reads='db blocks gets' + 'consistent gets' -缓冲区的 命中率低于80%需要加参数


select * from v$sgastat where pool='shared pool' and name='free memory';  sga统计信息, 共享内存池是否够用
 select count(distinct name) from v$event_name;  -事件
 select (sum(pins-reloads)) / sum(pins) "lib cache"  from v$librarycache;  跟解析语句有关系,结果存储在内存,提取速度快 命中率大于99%最好,不然库缓存太小需要优化, pins总的命中数量  reloads没有中的命中数量
 select(sum(gets-getmisses)) / sum(gets) hit from v$rowcache; 数据字典命中率 保持在85%以上

任务 Diagnostic & Tuning
时间 2011-3-8
作业者 胡国青

Maintenance  of  the  alert.log  file
日志名称 说明
Alter_SID.log 操作信息、系统信息记录
Alter session set sql_trace = true;或
Dbms_system.set_sql_trace(ID号,子序列号,true[false]) 在会话级别对SQL命令跟踪下来生成跟踪文件,由catprec.sql创建这个包,  使用tkprof产生一个可读性报表
Statspack
1. Installaction of statspack using the spcreate.sql script
2. collection of statistics execute statspack.snap
3. Automatic collection of statistics using the spauto.sql
4. Product a report using the spreport.sql script
5. To collect timing information, set timed_statistics = TRUE;


Show parameter timed_st 

Alter system set timd_statistics = TRUE scope = both;
<1>select file_name from dba_data_files
<2>create tablespace perfstat datafile ‘/u01/perfstat01.dbf’size 500M extent management local extent space management auto;
<3>create temporary tablespace perftemp tempfile ‘/u01/perftemp01.dbf’size 100M ;
<4>以DBA权限,执行[sql>@path/spcreate.sql];  其中有spcpkg.lis文件可以看看  哈哈
<5>connect perfstat/perfstat
<6>execute statspack.snap     ----拍照,对系统信息的统计
<7>执行[sql>@path/spauto.sql]; ---自动拍照,将trunc(sysdate+1/24, ‘HH’),这个脚本中有两个24可改成144,隔10分钟拍一次照;也可以不该
<8>select job, log_user, next_date, interval from user_jobs; 查询结果中有个 21;[按照个人设置的,这是我个人设置的]
<9> execute statspack.snap     ----再拍照
<10>select snap_id from stats$snapshot; ----拍照信息情况
<11> execute dbms_job_remove(21)   ----移除查询结果的21;
<12>select snap_id from stats$snapshot; ----拍照信息情况
<13> execute statspack.snap     ----再次拍照
<14> @path/spreport.sql 生成报告脚本 其中 begin_snap值: 1  end_snap值:3 因为一共拍了三次照;report_name:/u01/chain.txt
<15> select snap_id from stats$snapshot; ----拍照信息情况
看看生成的chain.txt脚本  很重要
最后:show parameter cursor_sharing: ---关于执行SQL语句是否完全匹配[大小写字母等]
Alter system set cursor_sharing = similar scope = both; ---会使用绑定变量,利用相似的去扩大命中率
<16> select snap_id, snap_time from stats$snapshot; ----拍照信息情况
<17>以DBA权限: 执行 @path/spdrop.sql 删除

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

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

注册时间:2011-03-17

  • 博文量
    17
  • 访问量
    65045