实用的数据库检查程序(2)

来源:百度文库 编辑:神马文学网 时间:2024/04/29 10:18:08

实用的数据库检查程序(2)

[日期:2005-07-08]来源:CSDN  作者:[字体:大 中 小]

Ttitle Off

 

prompt ++++++++++++++++++++++++++++++++++ Item ++++++++++++++++++++++++++++++++++

prompt + 3.0 Log Switch In the Last Day                                         +

prompt ++++++++++++++++++++++++++++++++++ Item ++++++++++++++++++++++++++++++++++

prompt

 

TTitle left "*** Database: "xdbname", How Offen the Log Switch(As of : "xdate" ) ***" skip 1

 

column archive_name format A40

column "Time" format A25

 

select to_char(TO_DATE(Time,‘MM/DD/RR HH24:MI:SS‘),‘DD-MON-RRRR HH24:MI:SS‘) "Time",

     ARCHIVE_NAME

from v$log_history

where TO_DATE(Time,‘MM/DD/RR HH24:MI:SS‘) > sysdate - 1

order by TO_DATE(Time,‘MM/DD/RR HH24:MI:SS‘) desc ;

 

prompt

prompt <<<<<<<<<<<<<<<<<<< NOTE: >>>>>>>>>>>>>>>>>>>>>>

prompt 3.0 Invesigation

prompt Standard:

prompt During periods of high activity , log switches are occurring every 20 minutes

prompt <<<<<<<<<<<<<<<<<<< NOTE: >>>>>>>>>>>>>>>>>>>>>>

prompt

ttitle off

 

prompt

prompt ++++++++++++++++++++++++++++++++++ Item ++++++++++++++++++++++++++++++++++

prompt + 3.1 Log Buffer  - redo log space requests : The Value                  +

prompt + should be relative small prompt Server is waiting for                  +

prompt + disk space to be allocate for redo log entries                         +

prompt + Space is created by performing a log switch                            +

prompt ++++++++++++++++++++++++++++++++++ Item ++++++++++++++++++++++++++++++++++

prompt

 

ttitle left "*** Log Buffers - redo log space requests ***" Skip 1

select substr(name,1,25) "Log Buffers",

    substr(value,1,15) "VALUE (Near 0?)"

from v$sysstat

where name = ‘redo log space requests‘

/

 

prompt

prompt <<<<<<<<<<<<<<<<<<< NOTE: >>>>>>>>>>>>>>>>>>>>>>

prompt 3.1 Investigation

prompt If the value is not near 0 , increase LOG BUFFER.

prompt <<<<<<<<<<<<<<<<<<< NOTE: >>>>>>>>>>>>>>>>>>>>>>

prompt

ttitle off

 

prompt

prompt ++++++++++++++++++++++++++++++++++ Item ++++++++++++++++++++++++++++++++++

prompt + 3.2 Log Buffer - log buffer space                                      +

prompt ++++++++++++++++++++++++++++++++++ Item ++++++++++++++++++++++++++++++++++

prompt

ttitle left "*** Log Buffers - Log Buffer Space Waits***" Skip 1

select sid , event , seconds_in_wait , state

from v$session_wait

where event = ‘log buffer space‘

/

 

prompt

prompt <<<<<<<<<<<<<<<<<<< NOTE: >>>>>>>>>>>>>>>>>>>>>>

prompt 3.2 Invesigation

prompt There should be no log buffer space waits

prompt Making the log buffer bigger if it is small

prompt Moving the log files to faster disks such as striped disks

prompt <<<<<<<<<<<<<<<<<<< NOTE: >>>>>>>>>>>>>>>>>>>>>>

prompt

ttitle off

 

prompt

prompt ++++++++++++++++++++++++++++++++++ Item ++++++++++++++++++++++++++++++++++

prompt + 3.3 Log Buffer - Redo Buffer Allocation Retries                        +

prompt ++++++++++++++++++++++++++++++++++ Item ++++++++++++++++++++++++++++++++++

prompt

 

ttitle left "*** Log Buffers - Redo Buffer Allocation Retries ***" Skip 1

column name print

select name , value

from v$sysstat

where name in (‘redo buffer allocation retries‘,‘redo entries‘)

/

 

prompt

prompt <<<<<<<<<<<<<<<<<<< NOTE: >>>>>>>>>>>>>>>>>>>>>>

prompt 3.3 Investigation

prompt Redo Buffer Allocation Retries should be near 0

prompt the number should be less than 1% of Redo Entries

prompt Increase the size of the redo log buffer (LOG BUFFER)

prompt improve the checkpointing or archiving process

prompt <<<<<<<<<<<<<<<<<<< NOTE: >>>>>>>>>>>>>>>>>>>>>>

prompt

ttitle off

 

prompt

prompt ++++++++++++++++++++++++++++++++++ Item ++++++++++++++++++++++++++++++++++

prompt + 3.4 Log Buffer - Log File Switch Completion                            +

prompt + Identify the log file switch waits because of log switches             +

prompt ++++++++++++++++++++++++++++++++++ Item ++++++++++++++++++++++++++++++++++

prompt

 

ttitle left "*** Log Buffers - Log File Swith Completion***" Skip 1

select event , total_waits,time_waited,average_wait

from v$system_event

where event like ‘log file switch completion%‘

/

prompt

prompt <<<<<<<<<<<<<<<<<<< NOTE: >>>>>>>>>>>>>>>>>>>>>>

prompt 3.4 Investigation

prompt Increase the size of the redo log files

prompt <<<<<<<<<<<<<<<<<<< NOTE: >>>>>>>>>>>>>>>>>>>>>>

prompt

ttitle off

 

prompt

prompt ++++++++++++++++++++++++++++++++++ Item ++++++++++++++++++++++++++++++++++

prompt + 3.5 Log Buffer - CHECKPOINT Incomplete                                 +

prompt ++++++++++++++++++++++++++++++++++ Item ++++++++++++++++++++++++++++++++++

prompt

 

ttitle left "*** Log Buffers - CheckPoint Incompletion***" Skip 1

select event , total_waits,time_waited,average_wait

from v$system_event

where event like ‘log file switch (check%‘

or event like ‘log file switch (arch%‘

/

prompt

prompt <<<<<<<<<<<<<<<<<<< NOTE: >>>>>>>>>>>>>>>>>>>>>>

prompt 3.5 Investigation

prompt check the frequence of check points and set the appropriate values

prompt for LOG_CHECKPOINT_INTERVAL and LOG_CHECKPOINT_TIMEOUT

prompt check the size and number of redo log groups

prompt confirm that the archive device is not full

prompt add redo log groups

prompt increase the number of buffers to archive and reducing the size of buffers by setting

prompt LOG_ARCHIVE_BUFFERS and LOG_ARCHIVE_BUFFER_SIZE

prompt <<<<<<<<<<<<<<<<<<< NOTE: >>>>>>>>>>>>>>>>>>>>>>

prompt

ttitle off

 

prompt

prompt ++++++++++++++++++++++++++++++++++ Item ++++++++++++++++++++++++++++++++++

prompt + 4.0 Share Pool Size - Gets and Misses (Library Cache)                  +

prompt ++++++++++++++++++++++++++++++++++ Item ++++++++++++++++++++++++++++++++++

prompt

 

column "Executions" format 9,999,999,990

column "Cache Misses Executing" format 9,999,999,990

column "Data Dictionary Gets" format 9,999,999,999

column "Get Misses" format 9,999,999,999

column "% Ratio" format 999.99

 

ttitle left skip 1 -

left "*** Shared Pool Size (Execution Misses) ***" skip 1

 

select sum(pins) "Executions",

       sum(reloads) "Cache Misses Executing",

       (sum(reloads)/sum(pins)*100) "% Ratio"

from v$librarycache

/

 

prompt

prompt <<<<<<<<<<<<<<<<<<< NOTE: >>>>>>>>>>>>>>>>>>>>>>

prompt 4.0 Investigation

prompt If % Ratio is above 1% , increase SHARE_POOL_SIZE.

prompt <<<<<<<<<<<<<<<<<<< NOTE: >>>>>>>>>>>>>>>>>>>>>>

prompt

ttitle off

 

prompt

prompt ++++++++++++++++++++++++++++++++++ Item ++++++++++++++++++++++++++++++++++

prompt + 4.1 Share Pool Size - Gets and Misses (Data Dictionary)                +

prompt ++++++++++++++++++++++++++++++++++ Item ++++++++++++++++++++++++++++++++++

prompt

 

ttitle left "*************** Shared Pool Size (Dictionary Gets) ***********" skip 1

select sum(gets) "Data Dictionary Gets",

       sum(getmisses) "Get Misses",

       100*(sum(getmisses)/sum(gets)) "Ratio"

from v$rowcache

/

 

prompt

prompt <<<<<<<<<<<<<<<<<<< NOTE: >>>>>>>>>>>>>>>>>>>>>>

prompt 4.1 Investigation

prompt If % Ratio is above 12% , increase SHARED_POOL_SIZE.

prompt <<<<<<<<<<<<<<<<<<< NOTE: >>>>>>>>>>>>>>>>>>>>>>

prompt

ttitle off

 

prompt

prompt ++++++++++++++++++++++++++++++++++ Item ++++++++++++++++++++++++++++++++++

prompt + 5.0 Check Which SQL is the most cost SQL                               +

prompt ++++++++++++++++++++++++++++++++++ Item ++++++++++++++++++++++++++++++++++

prompt

ttitle off

 

ttitle left "*** V$SQL Check ***" Skip 1

column SQL_TEXT Format A50

select Sql_TEXT,EXECUTIONS,ROWS_PROCESSED,BUFFER_GETS/100,DISK_READS/100

FROM V$sql V,(SELECT SUM(BUFFER_GETS) TOT_GETS FROM V$SQL) S

WHERE BUFFER_GETS > TOT_GETS * 0.1

ORDER BY BUFFER_GETS DESC

/

 

prompt

prompt <<<<<<<<<<<<<<<<<<< NOTE: >>>>>>>>>>>>>>>>>>>>>>

prompt 5.0 Invesigation

prompt Selected SQL is the most cost SQL (>10% of total gets)

prompt <<<<<<<<<<<<<<<<<<< NOTE: >>>>>>>>>>>>>>>>>>>>>>

prompt

ttitle off

 

prompt

prompt ++++++++++++++++++++++++++++++++++ Item ++++++++++++++++++++++++++++++++++

prompt + 6.0 How Much CPU is used for each session                              +

prompt ++++++++++++++++++++++++++++++++++ Item ++++++++++++++++++++++++++++++++++

prompt

ttitle left "*** CPU Usage ***" Skip 1

column USERNAME FORMAT A10

column MACHINE FORMAT A15

column OSUSER FORMAT A15

column TERMINAL FORMAT A15

column PROGRAM FORMAT A20

select s.sid,v.SERIAL#,v.USERNAME,v.OSUSER,v.MACHINE,v.TERMINAL,v.PROGRAM,s.value "CPU Used"

from v$sesstat s,v$statname n , v$session v

where s.statistic#=n.statistic# and n.name=‘CPU used by this session‘

and s.sid = v.sid

/

 

prompt

prompt <<<<<<<<<<<<<<<<<<< NOTE: >>>>>>>>>>>>>>>>>>>>>>

prompt 6.0 Invesigation

prompt

prompt <<<<<<<<<<<<<<<<<<< NOTE: >>>>>>>>>>>>>>>>>>>>>>

prompt