Dba file space usage
Aller à la navigation
Aller à la recherche
| Fiche express | |
|---|---|
| Type | Script SQL*Plus de diagnostic |
| Domaine | Administration (occupation espace) |
| Voir aussi | Dba file space usage 7 · Dba file · Dba free space frag |
Dba_file_space_usage calcule, fichier par fichier, l'espace utilisé et le pourcentage de remplissage, pour les fichiers de données comme pour les fichiers temporaires (tempfiles), en s'appuyant sur DBA_FREE_SPACE et V$TEMP_EXTENT_POOL.
Cette version cible Oracle8i et plus : elle gère correctement les tablespaces temporaires « vrais » (tempfiles), contrairement à Dba file space usage 7 qui vise les versions antérieures. C'est le script à privilégier sur une base moderne.
Script
SET TERMOUT OFF
COLUMN current_instance NEW_VALUE current_instance NOPRINT
SELECT RPAD(instance_name, 17) current_instance FROM v$instance;
SET TERMOUT ON
PROMPT
PROMPT +------------------------------------------------------------------------+
PROMPT | Rapport : Occupation des fichiers |
PROMPT | Instance : ¤t_instance |
PROMPT +------------------------------------------------------------------------+
SET ECHO OFF
SET FEEDBACK 6
SET HEADING ON
SET LINESIZE 256
SET PAGESIZE 50000
SET VERIFY OFF
CLEAR COLUMNS
CLEAR BREAKS
CLEAR COMPUTES
COLUMN tablespace FORMAT a18 HEADING 'Tablespace'
COLUMN filename FORMAT a75 HEADING 'Fichier'
COLUMN filesize FORMAT 9,999,999,999,999 HEADING 'Taille'
COLUMN used FORMAT 9,999,999,999,999 HEADING 'Utilisé (octets)'
COLUMN pct_used FORMAT 999 HEADING '% Utilisé'
BREAK ON report
COMPUTE sum OF filesize ON report
COMPUTE sum OF used ON report
COMPUTE avg OF pct_used ON report
SELECT /*+ ordered */
d.tablespace_name tablespace
, d.file_name filename
, d.file_id file_id
, d.bytes filesize
, NVL((d.bytes - s.bytes), d.bytes) used
, TRUNC((NVL((d.bytes - s.bytes), d.bytes) / d.bytes) * 100) pct_used
FROM
dba_data_files d
, v$datafile v
, (SELECT file_id, SUM(bytes) bytes
FROM dba_free_space
GROUP BY file_id) s
WHERE
s.file_id (+) = d.file_id
AND d.file_name = v.name
UNION
SELECT
d.tablespace_name tablespace
, d.file_name filename
, d.file_id file_id
, d.bytes filesize
, NVL(t.bytes_cached, 0) used
, TRUNC((t.bytes_cached / d.bytes) * 100) pct_used
FROM
dba_temp_files d
, v$temp_extent_pool t
, v$tempfile v
WHERE
t.file_id (+) = d.file_id
AND d.file_id = v.file#
/
Colonnes / sortie
- Utilisé (octets) : pour un fichier de données, calculé comme taille totale moins espace libre (
DBA_FREE_SPACE) ; pour un tempfile, correspond aux extents effectivement mis en cache (V$TEMP_EXTENT_POOL) — une notion différente qui reflète l'usage réel du tri/hash en cours plutôt qu'un espace « alloué durablement ». - % Utilisé : indicateur simple pour repérer un fichier proche de la saturation avant qu'
AUTOEXTEND(s'il est actif) ne prenne le relais, ou avant une erreur ORA-01653/ORA-01652.
Voir aussi
- Dba file space usage 7 — équivalent pour Oracle7/8 (sans support des tempfiles).
- Dba file — inventaire des fichiers avec leurs paramètres d'extension.
- Dba free space frag — complète cette vue avec la fragmentation de l'espace libre.