Temp sort segment

De wiki.nexiat.fr
Aller à la navigation Aller à la recherche
Fiche express
Type Script SQL*Plus de diagnostic (Tablespace temporaire)
Voir aussi Temp sort users · Temp status

Temp sort segment liste les tablespaces temporaires et l'état réel des segments de tri sous-jacents, à partir de la vue V$SORT_SEGMENT. Contrairement à une simple lecture de la taille des fichiers temporaires, cette vue reflète l'occupation effective de l'espace de tri à l'instant présent (extents utilisés, pic de consommation, nombre de sessions actives sur le segment). Le script interroge les vues GV$ et fonctionne donc aussi bien sur une instance unique qu'en RAC.

Colonnes principales :

  • Segment Name : concaténation du numéro de fichier et du numéro de bloc de la première extension (identifiant technique du segment de tri) ;
  • Current Users : nombre de sessions utilisant activement le segment ;
  • Total/Currently Used : taille totale du segment de tri et volume actuellement occupé ;
  • Max Size / Max Used Size / Max Sort Size : pics historiques (taille max atteinte, volume max utilisé, plus gros tri individuel) ;
  • Extent Hits et Free Requests : indicateurs de réutilisation des extents dans le pool de tri.

Script

-- Etat reel des segments de tri temporaires (RAC-compatible)
SET LINESIZE 180
SET PAGESIZE 50000
SET VERIFY OFF

COLUMN instance_name              FORMAT a8                 HEADING 'Instance'
COLUMN tablespace_name            FORMAT a15                HEADING 'Tablespace|Name'
COLUMN temp_segment_name          FORMAT a8                 HEADING 'Segment|Name'
COLUMN current_users              FORMAT 9,999              HEADING 'Current|Users'
COLUMN total_temp_segment_size    FORMAT 999,999,999,999    HEADING 'Total Temp|Segment Size'
COLUMN currently_used_bytes       FORMAT 999,999,999,999    HEADING 'Currently|Used Bytes'
COLUMN pct_used                   FORMAT 999                HEADING 'Pct.|Used'
COLUMN extent_hits                FORMAT 999,999            HEADING 'Extent|Hits'
COLUMN max_size                   FORMAT 999,999,999,999    HEADING 'Max|Size'
COLUMN max_used_size              FORMAT 999,999,999,999    HEADING 'Max Used|Size'
COLUMN max_sort_size              FORMAT 999,999,999,999    HEADING 'Max Sort|Size'
COLUMN free_requests               FORMAT 999                HEADING 'Free|Requests'

BREAK ON instance_name SKIP PAGE

SELECT
    i.instance_name                 instance_name
  , t.tablespace_name               tablespace_name
  , 'SYS.' || t.segment_file || '.' || t.segment_block  temp_segment_name
  , t.current_users                 current_users
  , (t.total_blocks    * b.value)   total_temp_segment_size
  , (t.used_blocks     * b.value)   currently_used_bytes
  , TRUNC(ROUND((t.used_blocks/t.total_blocks)*100))     pct_used
  , t.extent_hits                   extent_hits
  , (t.max_blocks      * b.value)   max_size
  , (t.max_used_blocks * b.value)   max_used_size
  , (t.max_sort_blocks * b.value)   max_sort_size
  , t.free_requests                 free_requests
FROM
    gv$instance                    i
  , gv$sort_segment                t
  , (SELECT value FROM v$parameter
     WHERE name = 'db_block_size') b
WHERE
    t.inst_id = i.inst_id
ORDER BY
    i.instance_name
  , t.tablespace_name;

Voir aussi

  • Temp sort users — identifier les sessions qui consomment ce segment de tri
  • Temp status — vue d'ensemble (taille, occupation) de tous les tablespaces temporaires