peter9

Oracle监控Sql脚本

spool d:/10-10.log
Prompt    192.168.10.10 WCM03 分析         
Prompt    分析时间
SELECT    SYSDATE        FROM DUAL;
Prompt  数据库实例
SELECT    NAME        FROM V$DATABASE;
Prompt 检查数据文件的状态记录状态不是"online"的数据文件
Select             file_name
from             dba_data_files
where             status=\'OFFLINE\';
Prompt 检查表空间的使用情况 如果表空间使用超过80%,添加新的数据文件或者加大数据文件的大小
SELECT             tablespace_name,
            to_char(100*sum_free_m/sum_m, \'99.99\') || \'%\' AS pct_free,
             max_m,
            count_blocks free_blk_cnt,
              sum_free_m             
FROM             ( SELECT         tablespace_name,
                        sum(bytes)/1024/1024 AS sum_m
            FROM             dba_data_files
            GROUP BY         tablespace_name), 
            (SELECT         tablespace_name AS fs_ts_name,
                         max(bytes)/1024/1024 AS max_m,
                         count(blocks) AS count_blocks,
                         sum(bytes/1024/1024) AS sum_free_m
             FROM             dba_free_space
             GROUP BY         tablespace_name ) 
WHERE             tablespace_name = fs_ts_name;
Prompt 统计数据库的剩余的使用空间
SELECT             tablespace_name,
            trunc ( sum (bytes ) /  (1024*1024) ) as free_m,
            sum ( blocks ) as free_blk ,            
            max ( bytes ) / (1024) as big_chunk_k,
                 count (*) as num_chunks 
FROM             dba_free_space
GROUP BY         tablespace_name ;
Prompt 检查无效的数据库对象
SELECT             owner||\'    \'||object_name||\'    \'||object_type
FROM             dba_objects 
WHERE             status=\'INVALID\';
Prompt 检查不起作用的约束
SELECT             owner||\'    \'||constraint_name||\'    \'||table_name||\'    \'||constraint_type||\'    \'||status 
FROM             dba_constraints 
WHERE             status = \'DISABLED\'
AND             constraint_type = \'P\';
Prompt 检查无效的trigger
SELECT             owner||\'    \'||trigger_name||\'    \'||table_name||\'    \'|| status 
FROM             dba_triggers 
WHERE             status = \'DISABLED\';
Prompt 自由范围的碎片
column FSFI format 999,99
select             tablespace_name,
            sqrt(max(blocks)/sum(blocks))*(100/sqrt(sqrt(count(blocks)))) FSFI
from             dba_free_space
group by         tablespace_name
order by         1;
Prompt 数据缓冲命中率
SELECT             a.VALUE + b.VALUE logical_reads, 
            c.VALUE phys_reads, 
                    round(100*(1-c.value/(a.value+b.value)),4) hit_ratio 
FROM             v$sysstat a,
            v$sysstat b,
            v$sysstat c 
WHERE             a.NAME=\'db block gets\' 
AND             b.NAME=\'consistent gets\' 
AND             c.NAME=\'physical reads\' ;
Prompt  语句的重载率
SELECT             SUM(pins) total_pins,
            SUM(reloads) total_reloads, 
                    SUM(reloads)/SUM(pins)*100 libcache_reload_ratio 
FROM              v$librarycache;  
Prompt 用户锁状态
SELECT /*+ rule */         s.username, 
                decode(l.type,\'TM\',\'TABLE LOCK\', \'TX\',\'ROW LOCK\',NULL) LOCK_LEVEL, 
                        o.owner,
                        o.object_name,
                        o.object_type, 
                        s.sid,
                        s.serial#,
                        s.terminal,
                        s.machine,
                        s.program,
                        s.osuser 
FROM                 v$session s,
                v$lock l,
                dba_objects o 
WHERE                 l.sid = s.sid 
AND                 l.id1 = o.object_id(+) 
AND                 s.username is NOT NULL  ;
Prompt 数据字典高速缓存
SELECT                 (1-(SUM(getmisses)/(SUM(gets)+SUM(getmisses))))*100
FROM                 v$rowcache;

Prompt 物理文件的使用频率
SELECT                 name||\'    \'||phyrds||\'/\'||phywrts
FROM                  v$datafile df,
                v$filestat fs
WHERE                 df.file# =fs.file#;
Prompt 调度进程的竞争
SELECT                 network,
                sum(busy)/sum(busy)+sum(idle)
FROM                 v$dispatcher
GROUP BY             network; 
Prompt 减少Free List竞争
SELECT                 class,
                count
FROM                 v$waitstat
WHERE                 class=\'free list\'; 
SELECT                 sum(value)
FROM                 v$sysstat
WHERE                 name     IN (\'db block gets\',\'consistent gets\');
spool off







发表于 2009-07-15 18:23  站在高处眺望  阅读(314)  评论(0编辑  收藏  举报
 

分类:

技术点:

相关文章: