Files
oracle/idev/perf_file_waits.sql
2026-03-12 21:23:47 +01:00

41 lines
1.7 KiB
SQL

-- +----------------------------------------------------------------------------+
-- | Jeffrey M. Hunter |
-- | jhunter@idevelopment.info |
-- | www.idevelopment.info |
-- |----------------------------------------------------------------------------|
-- | Copyright (c) 1998-2011 Jeffrey M. Hunter. All rights reserved. |
-- |----------------------------------------------------------------------------|
-- | DATABASE : Oracle |
-- | FILE : perf_file_waits.sql |
-- | CLASS : Tuning |
-- | PURPOSE : Reports on Busy Buffer Waits per file. |
-- | 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
COLUMN filename FORMAT a58 HEAD "File Name"
COLUMN file# FORMAT 999 HEAD "File #"
COLUMN ct FORMAT 999,999,999 HEAD "Waits (count)"
COLUMN time FORMAT 999,999,999 HEAD "Time (cs)"
COLUMN avg FORMAT 999.999 HEAD "Avg Time"
SELECT
a.indx + 1 file#
, b.name filename
, a.count ct
, a.time time
, a.time/(DECODE(a.count,0,1,a.count)) avg
FROM
x$kcbfwait a
, v$datafile b
WHERE
indx < (SELECT count(*) FROM v$datafile)
AND a.indx+1 = b.file#
ORDER BY a.time
/