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
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 Microsoft SQLServer?
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 Oracle ou Postgres. Para executar um comando similar no Oracle, verifique o artigo 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
Segue exemplo do comando:
DECLARE @DATAINICIO DATETIME
DECLARE @MINUTOSTOL INT
SET @MINUTOSTOL = 1440
SET @DATAINICIO = DATEADD(MINUTE, -@MINUTOSTOL, GETDATE())
SELECT TAB.TIPSER, @DATAINICIO, COUNT (1) AS EXECUCOES,
SUM(EXECUTADO) AS EXECUTADOSSUCESSO,
AVG(MINEXE) AS MEDIAMIN,
AVG(SEGEXE) AS MEDIASEG,
MIN(SEGEXE) AS MINIMOSEGUNDOS,
MAX(SEGEXE) AS MAXIMOSEGUNDOS,
SUM(EMEXECUCAO) AS EMEXECUCAO,
(AVG(COALESCE(MEM,0)) / 1024) /1024 AS MEMORIAMB
FROM (
SELECT TIPSER, CONVERT(DATE, DATINI) AS DATAEXECUCAO, DATEPART(MM, DATINI) AS HORAFIM, 1 AS EXECUTADO, 0 AS EMEXECUCAO,
DATEDIFF(MI, DATINI, DATFIN) AS MINEXE,
DATEDIFF(SS, DATINI, DATFIN) AS SEGEXE,
MEM
FROM R960REQ WHERE DATINI >= @DATAINICIO AND STATUS = 4
UNION ALL
SELECT TIPSER, CONVERT(DATE, DATINI) AS DATAEXECUCAO, DATEPART(MM, DATINI) AS HORAFIM, 0 AS EXECUTADO, 1 AS EMEXECUCAO,
DATEDIFF(MI, DATINI, GETDATE()) AS MINEXE ,
DATEDIFF(SS, DATINI, GETDATE()) AS SEGEXE ,
MEM
FROM R960REQ WHERE DATINI >= @DATAINICIO AND STATUS = 2
) TAB
GROUP BY TAB.TIPSER
ORDER BY 3 DESC
- No comando acima está destacado o valor 1440 para o parâmetro @MINUTOSTOL. 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.
- A execução do comando foi validada no aplicativo Microsoft SQL Server Management Studio. 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).