2010-07-13 7 views

Répondre

3

Cette requête affichera les requêtes qui sont en cours d'exécution:

select sql_text from v$sqlarea where users_executing > 0; 

Voir documentation of V$SQLAREA

14

Si vous voulez voir les requêtes d'un utilisateur spécifique, vous pouvez utiliser (en supposant que vous avez des privilèges à interroger v$session et v$sqlarea (généralement par SELECT_CATALOG_ROLE)

SELECT sess.sid, 
     sess.username, 
     sqla.optimizer_mode, 
     sqla.hash_value, 
     sqla.address, 
     sqla.cpu_time, 
     sqla.elapsed_time, 
     sqla.sql_text 
    FROM v$sqlarea sqla, v$session sess 
WHERE sess.sql_hash_value = sqla.hash_value 
    AND sess.sql_address = sqla.address 
    AND sess.username = 'SCOTT' 

Remplacer SCOT T avec le nom d'utilisateur approprié dans votre système

Sortie:

544 SCOTT  ALL_ROWS 2004330732 07000001064088E8   89391  131836 SELECT sess.sid,  sess.username, 
                         sqla.optimizer_mode,  sqla.h 
                        ash_value,  sqla.address,  s 
                        qla.cpu_time,  sqla.elapsed_time, 
                         sqla.sql_text FROM v$sqlarea sq 
                        la, v$session sess WHERE sess.sql_hash_ 
                        value = sqla.hash_value AND sess.sql_ 
                        address = sqla.address AND sess.usern 
                        ame = 'SCOTT' 
+0

Excellent, pouvez-vous me donner un exemple de sortie de cette requête? Parce que je n'ai pas de privilèges, j'ai demandé à l'équipe DBA de me donner la sortie et ils m'ont fondamentalement donné quelque chose qui ressemble plus au plan d'exécution de la requête, ce qui n'est pas ce que je veux. Collez un exemple de sortie s'il vous plaît, donc je peux savoir si les demandes d'autorisations seraient utiles pour moi ou non –

+1

J'ai une base de données où je suis administrateur complet, mais il dit que la session v $ n'existe pas. Comment puis-je résoudre ceci? –

+0

Par administrateur, voulez-vous dire que vous avez le rôle DBA et que vous exécutez la requête en tant qu'utilisateur avec ce rôle? Si ce n'est pas le cas, connectez-vous en tant que SYS et exécutez GRANT SELECT ON v $ session TO ; SUBVENTION SELECT ON v $ sqlarea AU . – bhangm

Questions connexes