ERP - WebServices - Qual comando pode ser utilizado para encontrar registros de WebServices que foram executados com a quantidade de processamentos e tempo médio de execução em banco de dados Oracle
Dúvida
Qual comando pode ser utilizado para encontrar registros de WebServices que foram executados com a quantidade de processamentos e tempo médio de execução em banco de dados Oracle?
Solução
- Possibilidade 1: via tela F000MPE - Recursos / Monitor de Processos;
- Possibilidade 2: via comando na base de dados.
- Para maiores informações sobre as informações demonstradas na tela, acesse a documentação da mesma;
- Tome cuidado na visualização das informações em tela. Caso não seja selecionado um filtro de data, o sistema buscará todos os dados das tabelas R960REQ e R960PAR, podendo demorar diversos minutos para apresentar dados, conforme a quantidade de registros de requisições de WebServices presentes na base de dados;
- Os filtros de período não utilizam horário para filtragem. Ou seja, considera-se os registros desde as 00:00 até as 23:59 das datas escolhidas.
- Este artigo demonstra apenas um exemplo de comando que pode ser executado no banco de dados Oracle para encontrar registros de WebServices que foram executados com a quantidade de processamentos e empo médio de execução. Caso ocorra alguma situação na execução do comando, entre em contato com o DBA da sua empresa, pois o comando pode precisar de ajustes dependendo da versão do banco de dados e outras características do seu ambiente;
- Este comando não é compatível com Microsoft SQLServer ou Postgres. Para executar um comando similar no Microsoft SQLServer, ERP - WebServices - Qual comando pode ser utilizado para encontrar registros de WebServices que foram executados com a quantidade de processamentos e tempo médio de execução em banco de dados Microsoft SQLServer
Segue exemplo do comando:
SELECT
TAB.TIPSER, DATAEXECUCAO, COUNT (1) AS EXECUCOES, SUM(EXECUTADO) AS EXECUTADOSSUCESSO, ROUND(AVG(MINEXE)) AS MEDIAMIN, ROUND(AVG(SEGEXE)) AS MEDIASEG, ROUND(MIN(SEGEXE)) AS MINIMOSEGUNDOS,
ROUND(MAX(SEGEXE)) AS MAXIMOSEGUNDOS, SUM(EMEXECUCAO) AS EMEXECUCAO, ROUND((AVG(COALESCE(MEM,0)) / 1024) /1024) AS MEMORIAMB
FROM
(
SELECT
TIPSER, TO_CHAR(DATINI, 'DD/MM/YYYY') AS DATAEXECUCAO, 1 AS EXECUTADO, 0 AS EMEXECUCAO, ((DATFIN-DATINI) * 24 * 60) AS MINEXE, ((DATFIN-DATINI) * 24 * 60) * 60 AS SEGEXE, MEM
FROM
R960REQ
WHERE
(DATINI >= (SYSDATE - INTERVAL '1440' MINUTE)) AND
STATUS = 4 --INTERVAL É QUANTOS MINUTOS PEGA PARA TRÁS PARA ANÁLISE
UNION
ALL
SELECT
TIPSER, TO_CHAR(DATINI, 'DD/MM/YYYY') AS DATAEXECUCAO, 0 AS EXECUTADO, 1 AS EMEXECUCAO, ((SYSDATE-DATINI) * 24 * 60) AS MINEXE, --DATEDIFF(MI, DATINI, DATFIN) AS MINEXE, ((SYSDATE-DATINI) * 24 * 60) * 60 AS SEGEXE,
MEM
FROM
R960REQ
WHERE
(DATINI >= (SYSDATE - INTERVAL '1440' MINUTE)) AND
STATUS = 2 --INTERVAL É QUANTOS MINUTOS PEGA PARA TRÁS PARA ANÁLISE ) TAB GROUP BY TAB.TIPSER, TAB.DATAEXECUCAO
ORDER BY
1
- No comando acima está destacado o valor 1440 em dois locais. Esse valor indica a quantidade de minutos para trás a partir da data atual que o select irá buscar requisições nas tabelas R960REQ e R960PAR para coleta das informações. O parâmetro deverá ser definido com o mesmo valor nas duas linhas;
- Se o parâmetro for definido como 1440, isso indica a busca de 1 dia de registros de requisições (1440 / 60 = 24 horas);
- Se o parâmetro for definido como 2880, isso indica a busca de 1 dia de registros de requisições (2880/ 60 = 48 horas);
- A execução do comando foi validada no aplicativo Oracle SQL Developer. A execução em outros aplicativos pode exigir adaptação;
- Não é recomendado o uso do comando em bases que tenham várias requisições registradas em um período muito grande, pois poderá haver lentidão para busca das informações. Se necessário, execute o comando várias vezes para buscar informações em intervalos menores.
Exemplo de retorno do comando:
O resultado será agrupado por WebService/Porta e Data da Execução.
Abaixo segue descritivo do que significa cada uma das colunas do resultado do comando:
- TipSer: WebService e Porta executada;
- DataExecucao: data da execução da requisição.
- Execucoes: quantidade de execuções registradas para esse WebService/Porta no período avaliado;
- ExecutadosSucesso: quantidade de execuções realizadas com sucesso, dentro das execuções indicadas na coluna anterior;
- MediaMin: dentro de todas as execuções coletadas, qual o tempo médio em minutos de execução de requisições (o valor será arredondado para cima ou para baixo conforme regra matemática de arredondamento);
- MediaSeg: dentro de todas as execuções coletadas, qual o tempo médio em segundos de execução de requisições (o valor deste campo, dividido por 60 e arredondando conforme lógica matemática é o resultado do campo MediaMin);
- MinimoSegundos: dentro de todas as execuções coletadas, qual foi o mínimo de tempo de execução em segundos;
- MaximoSegundos: dentro de todas as execuções coletadas, qual foi o máximo de tempo de execução em segundos;
- EmExecucao: quantas requisições desse WebService estão em execução atualmente. São consideradas apenas informações presentes na tabela R960REQ, o que pode apresentar divergências se comparado com uma visualização em tempo real pelo SeniorMonitorCenter;
- MemoriaMb: quantidade média de memória utilizada para execução das requisições coletadas.
Para mais informações sobre os WebServices do Gestão Empresarial | ERP, consulte o artigo ERP - WebServices - Onde é possível encontrar informações diversas sobre processo de integração via WebServices (índice).