Dba top segments
Aller à la navigation
Aller à la recherche
| Fiche express | |
|---|---|
| Type | Script SQL*Plus de diagnostic |
| Domaine | Administration |
| Voir aussi | Dba tablespaces · Dba tablespaces 8 |
Dba top segments affiche les 100 plus gros segments de la base (tables, index, partitions…), classés par taille décroissante et regroupés par type de segment. Utile en complément de Dba tablespaces pour identifier rapidement quels objets consomment le plus d'espace dans un tablespace qui se remplit.
Script
Le classement des 100 plus gros segments est fait dans une sous-requête triée par
bytes desc puis limitée avec rownum ; l'affichage final regroupe
ensuite ces 100 lignes par segment_type avec un sous-total de taille par type
(BREAK + COMPUTE sum).
-- Top 100 des segments par taille, regroupés par type de segment
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 | Report : Top Segments |
PROMPT | Instance : ¤t_instance |
PROMPT +------------------------------------------------------------------------+
SET ECHO OFF
SET FEEDBACK 6
SET HEADING ON
SET LINESIZE 180
SET PAGESIZE 50000
SET TIMING OFF
SET TRIMOUT ON
SET TRIMSPOOL ON
SET VERIFY OFF
CLEAR COLUMNS
CLEAR BREAKS
CLEAR COMPUTES
COLUMN segment_type FORMAT A20 HEADING 'Segment Type'
COLUMN owner FORMAT A15 HEADING 'Owner'
COLUMN segment_name FORMAT A30 HEADING 'Segment Name'
COLUMN partition_name FORMAT A30 HEADING 'Partition Name'
COLUMN tablespace_name FORMAT A20 HEADING 'Tablespace Name'
COLUMN bytes FORMAT 9,999,999,999,999 HEADING 'Size (in bytes)'
COLUMN extents FORMAT 999,999,999 HEADING 'Extents'
BREAK ON segment_type SKIP 1
COMPUTE sum OF bytes ON segment_type
SELECT
a.segment_type
, a.owner
, a.segment_name
, a.partition_name
, a.tablespace_name
, a.bytes
, a.extents
FROM
( SELECT
b.segment_type
, b.owner
, b.segment_name
, b.partition_name
, b.tablespace_name
, b.bytes
, b.extents
FROM
dba_segments b
ORDER BY
b.bytes DESC
) a
WHERE
rownum < 101
ORDER BY
segment_type, bytes DESC, owner, segment_name
/
Voir aussi
- Dba tablespaces — vue d'ensemble taille/occupation par tablespace
- Dba tablespaces 8 — variante Oracle8i du rapport de tablespaces