2026-03-12 20:23:15
This commit is contained in:
67
idev/perf_file_io.sql
Normal file
67
idev/perf_file_io.sql
Normal file
@@ -0,0 +1,67 @@
|
||||
-- +----------------------------------------------------------------------------+
|
||||
-- | Jeffrey M. Hunter |
|
||||
-- | jhunter@idevelopment.info |
|
||||
-- | www.idevelopment.info |
|
||||
-- |----------------------------------------------------------------------------|
|
||||
-- | Copyright (c) 1998-2011 Jeffrey M. Hunter. All rights reserved. |
|
||||
-- |----------------------------------------------------------------------------|
|
||||
-- | DATABASE : Oracle |
|
||||
-- | FILE : perf_file_io.sql |
|
||||
-- | CLASS : Tuning |
|
||||
-- | PURPOSE : Reports on Read/Write datafile activity. This script was |
|
||||
-- | designed to work with Oracle8i or higher. It will include all |
|
||||
-- | tablespaces using any type of extent management as well as true |
|
||||
-- | TEMPORARY tablespaces. (i.e. use of "tempfiles") |
|
||||
-- | NOTE : As with any code, ensure to test this script in a development |
|
||||
-- | environment before attempting to run it in production. |
|
||||
-- +----------------------------------------------------------------------------+
|
||||
|
||||
SET LINESIZE 145
|
||||
SET PAGESIZE 9999
|
||||
SET VERIFY off
|
||||
|
||||
COLUMN ts_name FORMAT a15 HEAD 'Tablespace'
|
||||
COLUMN fname FORMAT a45 HEAD 'File Name'
|
||||
COLUMN phyrds FORMAT 999,999,999 HEAD 'Physical Reads'
|
||||
COLUMN phywrts FORMAT 999,999,999 HEAD 'Physical Writes'
|
||||
COLUMN read_pct FORMAT 999.99 HEAD 'Read Pct.'
|
||||
COLUMN write_pct FORMAT 999.99 HEAD 'Write Pct.'
|
||||
|
||||
BREAK ON report
|
||||
COMPUTE SUM OF phyrds ON report
|
||||
COMPUTE SUM OF phywrts ON report
|
||||
COMPUTE AVG OF read_pct ON report
|
||||
COMPUTE AVG OF write_pct ON report
|
||||
|
||||
SELECT
|
||||
df.tablespace_name ts_name
|
||||
, df.file_name fname
|
||||
, fs.phyrds phyrds
|
||||
, (fs.phyrds * 100) / (fst.pr + tst.pr) read_pct
|
||||
, fs.phywrts phywrts
|
||||
, (fs.phywrts * 100) / (fst.pw + tst.pw) write_pct
|
||||
FROM
|
||||
sys.dba_data_files df
|
||||
, v$filestat fs
|
||||
, (select sum(f.phyrds) pr, sum(f.phywrts) pw from v$filestat f) fst
|
||||
, (select sum(t.phyrds) pr, sum(t.phywrts) pw from v$tempstat t) tst
|
||||
WHERE
|
||||
df.file_id = fs.file#
|
||||
UNION
|
||||
SELECT
|
||||
tf.tablespace_name ts_name
|
||||
, tf.file_name fname
|
||||
, ts.phyrds phyrds
|
||||
, (ts.phyrds * 100) / (fst.pr + tst.pr) read_pct
|
||||
, ts.phywrts phywrts
|
||||
, (ts.phywrts * 100) / (fst.pw + tst.pw) write_pct
|
||||
FROM
|
||||
sys.dba_temp_files tf
|
||||
, v$tempstat ts
|
||||
, (select sum(f.phyrds) pr, sum(f.phywrts) pw from v$filestat f) fst
|
||||
, (select sum(t.phyrds) pr, sum(t.phywrts) pw from v$tempstat t) tst
|
||||
WHERE
|
||||
tf.file_id = ts.file#
|
||||
ORDER BY phyrds DESC
|
||||
/
|
||||
|
||||
Reference in New Issue
Block a user