Perf file io efficiency

De wiki.nexiat.fr
Aller à la navigation Aller à la recherche
Fiche express
Type Script SQL*Plus de diagnostic
Voir aussi Perf file io · Perf file io 7 · Perf file waits

Perf file io efficiency ne mesure pas le volume d'I/O comme Perf file io, mais son efficacité : le rapport entre nombre de requêtes I/O (phyrds/phywrts) et nombre de blocs effectivement transférés (phyblkrd/phyblkwrt), cumulé depuis le démarrage de l'instance. Un ratio proche de 100 % signifie que chaque requête I/O ne transfère qu'un seul bloc (lectures aléatoires via index, typiques des tablespaces d'index) ; un ratio bas signifie des I/O multi-blocs (scans complets, typiques d'un tablespace de données mal indexé ou d'un full table scan).

Script

-- Efficacité I/O par fichier : requêtes I/O vs blocs transférés, cumulé depuis
-- le démarrage de l'instance.

SET LINESIZE 145
SET PAGESIZE 9999

COLUMN ts        FORMAT a15 HEADING 'Tablespace'
COLUMN fn          FORMAT a38 HEADING 'Fichier'
COLUMN rds                     HEADING 'Lectures'
COLUMN blk_rds                  HEADING 'Blocs lus'
COLUMN wrts                      HEADING 'Écritures'
COLUMN blk_wrts                   HEADING 'Blocs écrits'
COLUMN rw                          HEADING 'Lect+Écr'
COLUMN blk_rw                       HEADING 'Blocs Lect+Écr'
COLUMN efficiency                    FORMAT a10 HEADING 'Efficacité %'

SELECT
    f.tablespace_name                    ts
  , f.file_name                          fn
  , v.phyrds                             rds
  , v.phyblkrd                           blk_rds
  , v.phywrts                            wrts
  , v.phyblkwrt                          blk_wrts
  , v.phyrds + v.phywrts                 rw
  , v.phyblkrd + v.phyblkwrt             blk_rw
  , DECODE(v.phyblkrd + v.phyblkwrt, 0, NULL,
        ROUND(100 * (v.phyrds + v.phywrts) / (v.phyblkrd + v.phyblkwrt), 2)) efficiency
FROM
    dba_data_files f
  , v$filestat     v
WHERE
    f.file_id = v.file#
ORDER BY
    rds
/

Quelques repères de lecture :

  • une efficacité relativement basse sur le tablespace SYSTEM est normale : tables et
 index du dictionnaire de données y sont mélangés, ce qui mélange I/O mono-bloc et multi-blocs ;
  • un tablespace d'index doit afficher une efficacité constamment haute — sinon, soit les index
 sont fragmentés/dégradés, soit des tables y ont été créées par erreur ;
  • un tablespace de rollback/undo qui n'affiche pas ~100 % suggère qu'il héberge des objets qui
 n'ont rien à y faire ;
  • un tablespace temporaire affichant une efficacité (donc des I/O mono-bloc) au lieu des I/O
 multi-blocs habituels du tri/hash suggère un usage détourné à des fins de stockage de données.

Voir aussi