Este script que funciona para linux e windows calcula o IO dispendido por device.

SELECT nome.short_name “Device”,
sum(phyrds) “Leituras”,
sum(phywrts) “Escritas”,
sum((phywrts+phyrds)) “Total”,
s.segundos “Tempo(s)”,
sum(round((phywrts+phyrds)/(s.segundos),2)) “IO/s”
FROM
(SELECT /*+ RULE */
file# file_id,
phywrts,
phyrds,
readtim/10 readtim,
writetim/10 writetim,
0 contents
FROM v$filestat f
UNION ALL
SELECT /*+ RULE */
file# file_id,
phywrts,
phyrds,
readtim readtim,
writetim writetim,
1 contents
FROM v$tempstat) io,
(SELECT /*+ RULE */
ts#,
d.file# file_id,
d.name file_name,
SUBSTR(d.name, 1, INSTR(d.name, ”, 2)+INSTR(d.name,’/’,2)-1) short_name
FROM v$datafile d
UNION ALL
SELECT /*+ RULE */
ts#,
d.file# + p.value file_id,
d.name file_name,
SUBSTR(d.name, 1, INSTR(d.name, ”, 2)+INSTR(d.name,’/’,2)-1) short_name
FROM v$tempfile d, v$parameter p
WHERE d.blocks >0
AND p.name = ‘db_files’) nome,
(SELECT round(((sysdate-startup_time)*86400)) segundos
from v$instance) s
WHERE io.file_id = nome.file_id
GROUP BY nome.short_name, s.segundos