› Fóruns › Banco de dados Oracle › Processos – Acompanhar andamento › Processos – Acompanhar andamento
Como disse a você existem várias maneiras
bom
Para ligar:
Vamos supor que você saiba qual é a sessão
ALTER system SET timed_statistics = true scope=memory;
execute dbms_system.set_sql_trace_in_session(sid, serial, true);
para desligar
execute dbms_system.set_sql_trace_in_session(sid, serial, false);
Depois vá para o seu diretório udump
show parameter
SQL> show parameter user_dump_des
NAME TYPE VALUE
user_dump_dest string /u01/app/oracle/base10g/admin/
dbhml1/udump
Lá será criado um arquivo, teoricamente é o mais atual, ou dá para dar um nome ao arquivo
Outra forma é usar o pacote DBMS_SUPPORT em uma trigger,
CREATE OR REPLACE TRIGGER SYS.TRACE_SESSION_TRG
AFTER LOGON
ON DATABASE
BEGIN
IF sys_context(‘USERENV’,’SESSION_USER’) IN (‘&sess_user_name’) THEN
EXECUTE IMMEDIATE
‘BEGIN SYS.DBMS_SUPPORT.START_TRACE( waits=>true, binds=>true ); END;’;
END IF;
END;
/
O pacote dbms_support nem sempre está criado.
Para criar o pacote DMBS_SUPPORT
SQL> connect / AS SYSDBA
SQL> @$ORACLE_HOMErdbmsadmindbmssupp.sql
SQL> GRANT execute ON dbms_support TO schema_owner;
SQL> CREATE PUBLIC SYNONYM dbms_support FOR dbms_support;
Lembre-se que você deverá ter espaço suficiente , no diretório udump, senão a casa cae.
Outra coisa, tome cuidado com o Trigger, use com cautela.
Existem outras maneiras mas essa também serve
Mas lembre-se depois você precisar o tkprof em cima do trace que será gerado.