Tempo de Execução
- dr_gori
- Moderador
- Mensagens: 5024
- Registrado em: Seg, 03 Mai 2004 3:08 pm
- Localização: Portland, OR USA
- Contato:
Thomas F. G
Você já respondeu a dúvida de alguém hoje?
https://glufke.net/oracle/search.php?search_id=unanswered
Você já respondeu a dúvida de alguém hoje?
https://glufke.net/oracle/search.php?search_id=unanswered
Talvez você pode salvar numa variável a HORA que começou o report. (na trigger BEFORE_REPORT. E no final, salva a hora que terminou na AFTER_REPORT.
Dai basta fazer o que quiser com a diferença. Deve ser o tempo. (eu não testei, mas deve funcionar)
Dai basta fazer o que quiser com a diferença. Deve ser o tempo. (eu não testei, mas deve funcionar)
- Marciel
- Rank: Analista Sênior
- Mensagens: 158
- Registrado em: Qui, 03 Mai 2007 10:12 am
- Localização: Vitória - ES
Sabe qual o cúmulo da ignorância, da apatia e da ira?
Não sei, não quero saber e tenho raiva de quem sabe.
Não sei, não quero saber e tenho raiva de quem sabe.
dr_gori,
A trigger AFTER_REPORT é disparada ao fechar o relatório, e não ao terminar a execução (pelo menos no Reports 6i é assim). Não funciona.
Tentei pegar o tempo final em uma trigger de formatação, mas também dá errado. A primeira página é formatada antes da execução da query (estranho, eu sei...).
Tem alguma outra sugestão? Talvez haja alguma função do Oracle que faça isso?
A trigger AFTER_REPORT é disparada ao fechar o relatório, e não ao terminar a execução (pelo menos no Reports 6i é assim). Não funciona.
Tentei pegar o tempo final em uma trigger de formatação, mas também dá errado. A primeira página é formatada antes da execução da query (estranho, eu sei...).
Tem alguma outra sugestão? Talvez haja alguma função do Oracle que faça isso?
- dr_gori
- Moderador
- Mensagens: 5024
- Registrado em: Seg, 03 Mai 2004 3:08 pm
- Localização: Portland, OR USA
- Contato:
Thomas F. G
Você já respondeu a dúvida de alguém hoje?
https://glufke.net/oracle/search.php?search_id=unanswered
Você já respondeu a dúvida de alguém hoje?
https://glufke.net/oracle/search.php?search_id=unanswered
Tente setar a data SYSDATE em uma variável de algum REPEATING GROUP do relatório.
Daí você usa essa variável no AFTER_REPORT. Teoricamente, o que tiver nessa variável será a data do termino. (novamente, eu não testei isso - é apenas uma idéia) :-/
Daí você usa essa variável no AFTER_REPORT. Teoricamente, o que tiver nessa variável será a data do termino. (novamente, eu não testei isso - é apenas uma idéia) :-/
- Marciel
- Rank: Analista Sênior
- Mensagens: 158
- Registrado em: Qui, 03 Mai 2007 10:12 am
- Localização: Vitória - ES
Sabe qual o cúmulo da ignorância, da apatia e da ira?
Não sei, não quero saber e tenho raiva de quem sabe.
Não sei, não quero saber e tenho raiva de quem sabe.
Pois é cara, também não funciona. O Reports não obedece a ordem lógica "executa query->formata relatorio". Ele executa e formata em paralelo.
A trigger AFTER_REPORT somente é disparada quando o relatório é fechado, sem chance de usá-la.
Dá para pegar a hora de início, por exemplo pela trigger AFTER_PARAMETER_FORM. O difícil é pegar o tempo de término.
A trigger AFTER_REPORT somente é disparada quando o relatório é fechado, sem chance de usá-la.
Dá para pegar a hora de início, por exemplo pela trigger AFTER_PARAMETER_FORM. O difícil é pegar o tempo de término.
- dr_gori
- Moderador
- Mensagens: 5024
- Registrado em: Seg, 03 Mai 2004 3:08 pm
- Localização: Portland, OR USA
- Contato:
Thomas F. G
Você já respondeu a dúvida de alguém hoje?
https://glufke.net/oracle/search.php?search_id=unanswered
Você já respondeu a dúvida de alguém hoje?
https://glufke.net/oracle/search.php?search_id=unanswered
Minhas idéias tão acabando
Mas veja, dá uma olhada nesse documento de tuning, que ali tem como medir o tempo de um report.
Só não adianta se você quiser essa contagem em tempo de execução, tipo, pra manter um histórico.
https://glufke.net/oracle/download/27564 ... tuning.pdf
Mas veja, dá uma olhada nesse documento de tuning, que ali tem como medir o tempo de um report.
Só não adianta se você quiser essa contagem em tempo de execução, tipo, pra manter um histórico.
https://glufke.net/oracle/download/27564 ... tuning.pdf
- Marciel
- Rank: Analista Sênior
- Mensagens: 158
- Registrado em: Qui, 03 Mai 2007 10:12 am
- Localização: Vitória - ES
Sabe qual o cúmulo da ignorância, da apatia e da ira?
Não sei, não quero saber e tenho raiva de quem sabe.
Não sei, não quero saber e tenho raiva de quem sabe.
Bem... eu gostaria mesmo era de colocar o tempo de execução no corpo do relatório, para o usuário manter controle. Mas isso já me ajuda. Valeu.
- Marciel
- Rank: Analista Sênior
- Mensagens: 158
- Registrado em: Qui, 03 Mai 2007 10:12 am
- Localização: Vitória - ES
Sabe qual o cúmulo da ignorância, da apatia e da ira?
Não sei, não quero saber e tenho raiva de quem sabe.
Não sei, não quero saber e tenho raiva de quem sabe.
Alguém já usou a função SRW.TRACE_START no Reports 6i? Estou tentando usar da seguinte forma:
...mas ao executar o relatório fecha sozinho, sem dar nenhuma mensagem de erro.
function BeforeReport return boolean is
x varchar2(40);
begin
srw.get_report_name(x);
--srw.do_sql('alter session set sql_trace true');
srw.traceopts.mask := srw.trace_prf;
srw.trace_start(x || '.log', srw.trace_replace, srw.traceopts);
return (TRUE);
end;
function AfterReport return boolean is
begin
srw.trace_end;
return (TRUE);
end;
- Marciel
- Rank: Analista Sênior
- Mensagens: 158
- Registrado em: Qui, 03 Mai 2007 10:12 am
- Localização: Vitória - ES
Sabe qual o cúmulo da ignorância, da apatia e da ira?
Não sei, não quero saber e tenho raiva de quem sabe.
Não sei, não quero saber e tenho raiva de quem sabe.
dr_gori,
Essa dica já ajudou, porém ainda há um problema: O tempo é marcado entre o início da execução e o fechamento do relatório. Se o usuário ficar meia hora com o relatório aberto, esse tempo é contabilizado.
Bem, acho que é o melhor que pode ser feito. Só coloquei aqui mesmo para registrar.
Se alguém conseguir usar a função srw.trace_start(), ou souber o motivo de não funcionar, por favor poste aqui. Pode ser por estar conectando em um banco 10g, onde essa função foi "deprecada"?
Essa dica já ajudou, porém ainda há um problema: O tempo é marcado entre o início da execução e o fechamento do relatório. Se o usuário ficar meia hora com o relatório aberto, esse tempo é contabilizado.
Bem, acho que é o melhor que pode ser feito. Só coloquei aqui mesmo para registrar.
Se alguém conseguir usar a função srw.trace_start(), ou souber o motivo de não funcionar, por favor poste aqui. Pode ser por estar conectando em um banco 10g, onde essa função foi "deprecada"?
-
- Informação
-
Quem está online
Usuários navegando neste fórum: Nenhum usuário registrado e 15 visitantes