Oracle数据库性能监控(2)

发表于:2012-10-22来源:futurehandw作者:吴颖敏点击数: 标签:oracle
select count(*) from v$dispatcher; select servers_highwater from v$mts; servers_highwater接近mts_max_servers时,参数需加大 16. 碎片程度 select tablespace_name,count(tablespace_name) from

  select count(*) from v$dispatcher;

  select servers_highwater from v$mts;

  servers_highwater接近mts_max_servers时,参数需加大

  16. 碎片程度

  select tablespace_name,count(tablespace_name) from dba_free_space group by tablespace_name

  having count(tablespace_name)>;10;

  alter tablespace name coalesce;

  alter table name deallocate unused;

  create or replace view ts_blocks_v as

  select tablespace_name,block_id,bytes,blocks,'free space' segment_name from dba_free_space

  union all

  select tablespace_name,block_id,bytes,blocks,segment_name from dba_extents;

  select * from ts_blocks_v;

  select tablespace_name,sum(bytes),max(bytes),count(block_id) from dba_free_space

  group by tablespace_name;

  查看碎片程度高的表

  SELECT segment_name table_name , COUNT(*) extents

  FROM dba_segments WHERE owner NOT IN ('SYS', 'SYSTEM') GROUP BY segment_name

  HAVING COUNT(*) = (SELECT MAX( COUNT(*) ) FROM dba_segments GROUP BY segment_name);

  17. 表、索引的存储情况检查

  select segment_name,sum(bytes),count(*) ext_quan from dba_extents where

  tablespace_name='&tablespace_name' and segment_type='TABLE' group by tablespace_name,segment_name;

  select segment_name,count(*) from dba_extents where segment_type='INDEX' and owner='&owner'

  group by segment_name;

  18、找使用CPU多的用户session

  select a.sid,spid,status,substr(a.program,1,40) prog,a.terminal,osuser,value/60/100 value

  from v$session a,v$process b,v$sesstat c

  where c.statistic#=12 and c.sid=a.sid and a.paddr=b.addr order by value desc;

  监控数据库状态的目的就是找到相关的瓶颈点,但也许有时你的监控语句就会是你的瓶颈点,包括您后台的一些自动的监控。Jason就遇到这样的囧事,不是dbconsole占资源(响应时间>2s)就是监控lock语句占资源,包括oracle的某些maintain功能,需要很好的时间 schedual。

  插播就到这里,下篇会继续负载均衡,我们的重点是比较流行的lvs heartbeat。

原文转自:http://www.ltesting.net