Dba plsql package size
Aller à la navigation
Aller à la recherche
| Fiche express | |
|---|---|
| Type | Script SQL*Plus de diagnostic |
| Domaine | Administration (mémoire PL/SQL) |
| Voir aussi | Dba object cache |
Dba plsql package size classe les corps de package (PACKAGE BODY) par taille mémoire totale, du plus gros au plus petit — pratique pour identifier rapidement les plus gros consommateurs de shared pool côté code PL/SQL compilé.
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 | Report : PL/SQL Package Body Size Report |
PROMPT | Instance : ¤t_instance |
PROMPT +------------------------------------------------------------------------+
SET ECHO OFF
SET FEEDBACK 6
SET HEADING ON
SET LINESIZE 180
SET PAGESIZE 50000
SET VERIFY OFF
COLUMN owner FORMAT a20 HEAD "Owner"
COLUMN name FORMAT a35 HEAD "Name"
COLUMN type FORMAT a18 HEAD "Type"
COLUMN total_bytes FORMAT 999,999,999,999 HEAD "Total bytes"
SELECT
owner
, name
, type
, source_size + code_size + parsed_size + error_size total_bytes
FROM dba_object_size
WHERE type = 'PACKAGE BODY'
AND owner NOT IN ('SYS')
ORDER BY total_bytes DESC;
Le tri par position (ORDER BY 4 DESC dans le script d'origine) a été remplacé par le nom de colonne total_bytes, plus lisible et moins fragile si les colonnes de la requête venaient à être réordonnées.
Colonnes / sortie
- Owner / Name — propriétaire et nom du package.
- Type — ici toujours
PACKAGE BODY(le script exclut volontairement les autres types via le filtre). - Total bytes — somme de quatre composantes suivies par
dba_object_size:- source_size — taille du code source stocké.
- parsed_size — taille de la représentation "parsée" du code.
- code_size — taille du p-code exécutable.
- error_size — taille des informations d'erreur de compilation éventuelles.
Un gros total ici ne pose pas de problème en soi (le shared pool est justement fait pour ça), mais devient un point d'attention si le shared pool est sous-dimensionné et sujet à des expulsions/rechargements fréquents — voir Dba object cache pour repérer ces rechargements (colonne Loads).
Voir aussi
- Dba object cache — objets réellement en cache à un instant T, avec compteurs de chargement