Perf top sql by disk reads
Aller à la navigation
Aller à la recherche
| Fiche express | |
|---|---|
| Type | Script SQL*Plus de diagnostic |
| Vue source | v$sqlarea
|
| Voir aussi | Perf top sql by buffer gets · Profil de performance |
Perf top sql by disk reads liste les instructions SQL en mémoire (v$sqlarea) triées par nombre de lectures physiques (disk reads), c'est-à-dire les blocs lus depuis le disque faute de les trouver dans le buffer cache. Complémentaire de Perf top sql by buffer gets (lectures logiques).
Script
SET LINESIZE 145
SET PAGESIZE 9999
SET VERIFY OFF
COLUMN username FORMAT a18 HEADING 'Username'
COLUMN disk_reads FORMAT 999,999,999,999,999 HEADING 'Disk Reads'
COLUMN executions FORMAT 999,999,999,999,999 HEADING 'Executions'
COLUMN reads_per_exec FORMAT 999,999,999,999,999 HEADING 'Reads / Executions'
COLUMN sql HEADING 'SQL Statement'
BREAK ON report
COMPUTE sum OF disk_reads ON report
COMPUTE sum OF executions ON report
COMPUTE sum OF reads_per_exec ON report
PROMPT
PROMPT =============================================
PROMPT SQL avec plus de 1000 disk reads
PROMPT =============================================
SELECT
UPPER(b.username) username
, a.disk_reads disk_reads
, a.executions executions
, a.disk_reads / DECODE(a.executions, 0, 1, a.executions) reads_per_exec
, sql_text || CHR(10) || CHR(10) sql
FROM
sys.v_$sqlarea a
, dba_users b
WHERE
a.parsing_user_id = b.user_id
AND a.disk_reads > 1000
AND b.username NOT IN ('SYS', 'SYSTEM')
ORDER BY
disk_reads DESC;
Un volume élevé de disk reads rapporté à peu d'executions oriente souvent vers un plan d'exécution sous-optimal (full scan sur une grosse table, index manquant ou statistiques obsolètes) plutôt que vers un simple manque de cache — à confirmer avec Requete plan execution sur la requête en cause.
Voir aussi
- Perf top sql by buffer gets — même principe, trié par lectures logiques (mémoire) plutôt que physiques
- Profil de performance — profils SQL et diagnostics de performance plus larges
- Requete plan execution — analyser le plan d'exécution d'une requête identifiée comme coûteuse