Dba tablespace mapper
Aller à la navigation
Aller à la recherche
| Fiche express | |
|---|---|
| Type | Script SQL*Plus de diagnostic |
| Domaine | Administration (fragmentation d'un tablespace) |
| Voir aussi | Dba tablespace to owner · Dba rebuild indexes |
Dba tablespace mapper cartographie, pour un tablespace donné, l'ensemble de son espace libre et occupé au niveau des extents : chaque extent occupé (avec son propriétaire et l'objet concerné) et chaque plage d'espace libre, positionnés par fichier et par bloc de départ. Un bon outil pour visualiser la fragmentation d'un tablespace avant de décider d'une réorganisation.
Script
-- Cartographie l'espace libre et occupé (par extent) d'un tablespace donné.
SET TERMOUT OFF
COLUMN current_instance NEW_VALUE current_instance NOPRINT
COLUMN current_instance_nt NEW_VALUE current_instance_nt NOPRINT
SELECT rpad(instance_name, 17) current_instance, instance_name current_instance_nt FROM v$instance;
SET TERMOUT ON
PROMPT
PROMPT +------------------------------------------------------------------------+
PROMPT | Report : Tablespace Mapper |
PROMPT | Instance : ¤t_instance |
PROMPT +------------------------------------------------------------------------+
PROMPT
ACCEPT tbs_in PROMPT 'Enter tablespace name : '
SET ECHO OFF
SET FEEDBACK 6
SET HEADING ON
SET LINESIZE 180
SET PAGESIZE 50000
SET TERMOUT OFF
SET TRIMSPOOL ON
SET VERIFY OFF
CLEAR COLUMNS
CLEAR BREAKS
CLEAR COMPUTES
DEFINE fileName=tablespace_mapper
SPOOL &fileName._¤t_instance_nt._&tbs_in..txt
COLUMN owner FORMAT a20 HEADING "Owner"
COLUMN object FORMAT a30 HEADING "Object"
COLUMN file_id HEADING "File ID"
COLUMN block_id HEADING "Block ID"
COLUMN bytes FORMAT 999,999,999,999 HEADING "Bytes"
SELECT
'FREE SPACE' owner
, ' ' object
, file_id
, block_id
, bytes
FROM
dba_free_space
WHERE
tablespace_name = UPPER('&tbs_in')
UNION
SELECT
SUBSTR(owner, 1, 20)
, SUBSTR(segment_name, 1, 32)
, file_id
, block_id
, bytes
FROM
dba_extents
WHERE
tablespace_name = UPPER('&tbs_in')
ORDER BY
3
, 4
/
SPOOL OFF
SET FEEDBACK 6
SET HEADING ON
SET TERMOUT ON
PROMPT
PROMPT Report written to &fileName._¤t_instance_nt._&tbs_in..txt
PROMPT
Colonnes / sortie
- Une ligne
FREE SPACEpar plage d'espace libre (propriétaire fictif) et une ligne par extent occupé, chacune positionnée parFile ID/Block ID— le tri par ces deux colonnes permet de lire physiquement l'occupation d'un fichier de données de bout en bout. - Une alternance fréquente de courtes plages
FREE SPACEentre des extents occupés de tailles variées est le signe classique d'une fragmentation d'espace libre. - Le rapport est écrit dans
tablespace_mapper_<instance>_<tablespace>.txt.
Voir aussi
- Dba tablespace to owner — vision synthétique (sans le détail par extent) de l'occupation d'un tablespace
- Dba rebuild indexes — pour agir sur la fragmentation des index d'un tablespace repéré ici comme fragmenté