Example create profile resource parameters
| Fiche express | |
|---|---|
| Type | Exemple DDL Oracle |
| Contexte | Profil Oracle — volet limitation de ressources (CPU, sessions, mémoire) |
| Voir aussi | Example create profile password parameters · Example database resource manager setup |
Second volet de la paire consacrée aux profils Oracle (CREATE PROFILE) : ce
script limite les ressources consommées par les sessions d'un profil, complémentaire de
Example create profile password parameters qui traite les règles de mots de passe. Un
même profil peut combiner les deux familles de paramètres.
Oracle applique ces limites de trois façons différentes selon le paramètre dépassé :
CONNECT_TIME/IDLE_TIME: la transaction en cours est
annulée (rollback) et la session est terminée ; la prochaine requête de la session renvoie une erreur.
- Autres limites de session (ex.
LOGICAL_READS_PER_SESSION) : l'opération
en cours est annulée, l'instruction est annulée, une erreur est renvoyée immédiatement — la session reste ouverte, l'utilisateur doit valider ou annuler sa transaction.
- Limites par appel (ex.
CPU_PER_CALL) : seul l'appel en cours est annulé,
la transaction reste intacte.
Activation
Les limites de ressources définies dans un profil ne sont appliquées que si le paramètre
d'instance RESOURCE_LIMIT vaut TRUE :
ALTER SYSTEM SET resource_limit = TRUE;
-- Vérifier la valeur courante
SELECT value FROM v$parameter WHERE name = 'resource_limit';
Ce changement ne s'applique qu'aux nouvelles connexions, pas aux sessions déjà ouvertes.
Paramètres du profil
| Paramètre | Rôle | Erreur si dépassement |
|---|---|---|
SESSIONS_PER_USER |
Nombre de sessions concurrentes autorisées | ORA-02391 |
CPU_PER_SESSION |
Temps CPU cumulé par session (centièmes de seconde) | ORA-02392 |
CPU_PER_CALL |
Temps CPU par appel (parse/exécution/fetch) | ORA-02393 |
CONNECT_TIME |
Durée totale de la session (minutes) | ORA-02399 |
IDLE_TIME |
Durée d'inactivité continue autorisée (minutes) | ORA-02396 |
LOGICAL_READS_PER_SESSION |
Blocs logiques lus (mémoire + disque) par session | ORA-02394 |
LOGICAL_READS_PER_CALL |
Blocs logiques lus par appel | ORA-02395 |
PRIVATE_SGA |
Mémoire privée allouée en SGA (architecture shared server uniquement) | — |
COMPOSITE_LIMIT |
Coût total pondéré (CPU + temps + I/O logiques + SGA privée), en unités de service | — |
UNLIMITED signifie qu'aucune limite n'est imposée pour ce paramètre ;
DEFAULT renvoie à la valeur définie dans le profil DEFAULT. Tout
utilisateur sans profil explicite — ou dont le profil omet un paramètre — hérite de la limite
définie dans le profil DEFAULT (illimité par défaut, modifiable via
ALTER PROFILE).
Script
CONNECT / AS SYSDBA
CREATE PROFILE developer_profile LIMIT
SESSIONS_PER_USER UNLIMITED
CPU_PER_SESSION 12000
CPU_PER_CALL 3000
CONNECT_TIME 45
IDLE_TIME 5
LOGICAL_READS_PER_SESSION DEFAULT
LOGICAL_READS_PER_CALL 1000
PRIVATE_SGA 15K
COMPOSITE_LIMIT 5000000
/
Avec ce profil, un utilisateur peut ouvrir un nombre illimité de sessions, mais chaque session est limitée à 2 minutes de CPU cumulée (120 s), 30 s de CPU par appel, 45 minutes de durée totale et 5 minutes d'inactivité ; un appel ne peut lire plus de 1000 blocs, une session ne peut pas allouer plus de 15 Ko en SGA privée, et le coût total pondéré ne peut pas dépasser 5 millions d'unités de service.
Voir aussi
- Example create profile password parameters — premier volet du même profil (règles de mot de passe)
- Example database resource manager setup — gestion de ressources au niveau instance (Database Resource Manager), complémentaire mais distincte des profils utilisateur