Le SGBD Oracle est un moteur puissant et très efficace.. quand on sait le gérer. Si des requêtes prennent plus de temps que d’habitude ou si le tablespace temporaire est saturé, il existe un moyen de voir les connexions qui consomment des ressources temporaires. C’est une manière de voir à un instant précis s’il y a de trop nombreuses connexions, des requêtes trop lourdes et pour comprendre pourquoi le fichier TEMP01.DBF augmente de manière inhabituelle.
Le tablespace temporaire TEMP est utilisé pour gérer les longues requêtes qui ne peuvent être exécutées dans la mémoire PGA (Program Global Area). Ce fichier peut donc rapidement se remplir si les demandes sont régulières, gourmandes en ressource ou si le serveur de base de données est mal configuré. Elément de réponse avec cette requête qui donne une vue sur l’utilisation du tablespace TEMP d’un serveur Oracle.
Voir l’utilisation de la mémoire temporaire Oracle
1. Ouvrir une connexion SQLPlus ou SQL Developer sur le serveur Oracle, avec un compte sysdba.
2. Copier / coller la requête suivante :
SELECT se.osuser, se.username, se.sid, su.extents, su.blocks * to_number(rtrim(p.value)) as Space, tablespace FROM v$sort_usage su, v$parameter p, v$session se WHERE p.name = 'db_block_size' AND su.session_addr = se.saddr ORDER BY se.username, se.sid
3. Le retour est de ce type :
Et dans le cas où il y a une grosse consommation de TEMP :
4. On peut ainsi identifier l’utilisateur Oracle et le SID qui utilisent le tablespace temporaire TEMP du serveur Oracle.