Pular para o conteúdo

Fóruns Banco de dados Oracle Processos – Acompanhar andamento Processos – Acompanhar andamento

#95738
jspaulonci
Participante

    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.