Tablespaces infos
Aller à la navigation
Aller à la recherche
| Fiche express | |
|---|---|
| Type | Script SQL*Plus de diagnostic (Tablespaces) |
| Voir aussi | Tablespace size · Tablespace extract sql |
Tablespaces infos donne une vue d'ensemble détaillée de tous les tablespaces d'une base : Mo alloués, Mo libres, Mo utilisés, pourcentages, taille des extents (initial/next/min/max) et nombre de segments/extents par tablespace. Contrairement à Tablespace size qui ne renvoie qu'un total global, ce script permet d'identifier quel tablespace approche de la saturation.
Une seconde requête complémentaire liste les disk groups ASM (v$asm_diskgroup / v$asm_disk) avec leur taille et espace libre en Go, utile lorsque le stockage est en ASM plutôt qu'en fichiers système classiques.
Script
-- Vue d'ensemble détaillée de tous les tablespaces : espace alloué,
-- libre, utilisé, et taille des extents par tablespace.
SET echo off
SET feedback off
SET verify off
SET linesize 512
SET term off
COLUMN block_size NOPRINT NEW_VALUE block_size
SELECT value block_size FROM v$parameter WHERE name = 'db_block_size';
SET term on
prompt ------------------------------
prompt - Infos sur les tablespaces --
prompt ------------------------------
COLUMN tablespace_name HEADING 'Tablespace'
COLUMN megs_alloc HEADING 'Mo alloues'
COLUMN megs_free HEADING 'Mo libres'
COLUMN megs_used HEADING 'Mo utilises'
COLUMN pct_free HEADING 'Pct Free'
COLUMN pct_used HEADING 'Pct Used'
COLUMN init_ext HEADING 'Init Ext'
COLUMN next_ext HEADING 'Next Ext'
COLUMN min_ext HEADING 'Min Ext'
COLUMN max_ext HEADING 'Max Ext'
COLUMN num_segs HEADING 'Nbre Segments'
COLUMN num_exts HEADING 'Nbre Extents'
SELECT
c.tablespace_name
, ROUND(a.bytes/1048576) megs_alloc
, ROUND(b.bytes/1048576) megs_free
, ROUND((a.bytes-b.bytes)/1048576) megs_used
, ROUND(b.bytes/a.bytes * 100) pct_free
, ROUND((a.bytes-b.bytes)/a.bytes * 100) pct_used
, ROUND(c.initial_extent/1048576) init_ext
, ROUND(c.next_extent/1048576) next_ext
, ROUND(a.minbytes/1048576) min_ext
, ROUND(a.maxbytes/1048576) max_ext
, NVL(d.num_segs,0) num_segs
, NVL(d.num_exts,0) num_exts
FROM
( SELECT tablespace_name
, SUM(bytes) bytes
, MIN(bytes) minbytes
, MAX(bytes) maxbytes
FROM dba_data_files
GROUP BY tablespace_name
) a
, ( SELECT a.tablespace_name
, NVL(SUM(b.bytes),0) bytes
FROM dba_data_files a
, dba_free_space b
WHERE a.tablespace_name = b.tablespace_name (+)
AND a.file_id = b.file_id (+)
GROUP BY a.tablespace_name
) b
, dba_tablespaces c
, ( SELECT tablespace_name
, COUNT(DISTINCT segment_name) num_segs
, COUNT(extent_id) num_exts
FROM dba_extents
GROUP BY tablespace_name
) d
WHERE
a.tablespace_name = b.tablespace_name (+)
AND a.tablespace_name = c.tablespace_name
AND a.tablespace_name = d.tablespace_name (+)
ORDER BY
c.tablespace_name;
Disk groups ASM (complément stockage ASM)
SELECT
g.group_number
, g.name
, d.name
, d.disk_number
, d.total_mb / 1024 taille_go
, d.free_mb / 1024 libre_go
FROM
v$asm_diskgroup g
, v$asm_disk d
WHERE
g.group_number = d.group_number
ORDER BY
g.group_number;
Voir aussi
- Tablespace size — taille totale en un coup d'œil
- Tablespace extract sql — régénérer les ordres CREATE TABLESPACE