Ir para o conteúdo principal

Avaliar as alterações necessárias para resolver a problemática de lentidão no SID - 01/04/21

01/04/2021

Avaliar as alterações necessárias para resolver a problemática de lentidão no SID

Data: 01/04/2021

Objetivo

  • Verificar o que está deixando o sistema SID lento
  • Avaliar as alterações necessárias para deixar o sistema SID mais rápido

 

Visão Geral

  Este documento visa apresentar possíveis soluções para resolver a problemática de lentidão no SID

  1. Na tela de Solicitações de férias para aprovação do chefe imediato
  2. Na tela de Férias de servidores
  3. Na tela de Home/index
  
Resultado da pesquisa:

Na tela de solicitações/index, estão sendo utilizados os seguintes métodos:

  1. Método: Busca de interrupções de férias (sid/interrupção/ BuscarSolicitacoesAguardandoHomologacao)

Esse método busca as interrupções de férias do servidor no sid-api, e realiza o seguinte fluxo:

  1. Busca de todas as interrupções do banco do sid.
  2. Para cada interrupção é feita uma consulta à outra api (e-estado) para buscar os dados do servidor por cpf.
  3. É realizado um filtro para retirar somente as interrupções da unidade orçamentária selecionada

No exemplo da SEDAM, é buscada 182 interrupções do banco do sid, após isso é feita uma consulta a api do e-estado dos 182 servidores que tiveram a interrupção, para depois retirar todos que não eram da SEDAM, no caso 1 servidor somente.

Problema: Esse método consome muito tempo devido o número de vezes que o sistema consome a api do e-estado.

Possíveis soluções:

    1. Utilizar o método BuscarServidoresDaUnidadeOrcamentaria e realizar uma busca dos servidores por essa lista, retirando a necessidade de fazer várias requisições a API do e-estado servidor(utilizar como exemplo o método:   sid-api/solicitacao/ GetSolicitacoesDaUnidadeOrcamentaria) (3 pontos)
    2. Criar filtro por ano aquisitivo (3 pontos)

 

  1. Método: Busca de suspensões de férias (sid/suspensao/ BuscarSolicitacoesAguardandoHomologacao)

Mesmo problema do item anterior

Possíveis soluções:

    1. Utilizar o método BuscarServidoresDaUnidadeOrcamentaria e realizar uma busca dos servidores por essa lista, retirando a necessidade de fazer várias requisições a API do e-estado servidor(utilizar como exemplo o método:   sid-api/solicitacao/ GetSolicitacoesDaUnidadeOrcamentaria) (3 pontos)
    2. Criar filtro por ano aquisitivo (3 pontos)

 

 

  1. Método: BuscarSolicitacoesDeRemarcacaoPorUnidadeOrcamentaria
    1. Criar filtro por ano aquisitivo (3 pontos)

 

  1. Método: AdicionarUsuarioQueHomologou

Problema: Esta é uma outra consulta que está demorando bastante devido ao número de solicitações, é feita 2 consultas ao e-estado.

Possíveis soluções: Criar uma nova consulta no e-estado para buscar o que se pede.

  1. Método: SolicitacoesPorDepartamento
    1. Criar filtro por ano aquisitivo (3 pontos)

 

  1. Método: BuscarSolicitacoesAguardandoCiencia
    1. Criar filtro por ano aquisitivo (3 pontos)

 

É possível também criar requisições ajax para cada tela abaixo:

Da forma que está hoje, todas as solicitações são buscadas. Por ajax daria pra trazer cada tipo de solicitação somente quando fosse selecionado

Possíveis soluções:

    1. Requisição ajax para solicitações aguardando homologação (5 pontos)
    2. Requisição ajax para solicitações deferidas (5 pontos)
    3. Requisição ajax para solicitações indeferidas (5 pontos)
    4. Requisição ajax para solicitações remarcadas (5 pontos)

 

Na tela de solicitações/feriasdosservidores, estão sendo utilizados os seguintes métodos:

  1. Método: Férias dos servidores (sid/controller/FeriasDosServidores)

Melhoria: Ao invés de percorrer o foreach realizando o filtro, o mesmo poderia ser filtrado antes em feriasDosServidores.PlanejamentoDeFeriasDoServidores.Where(x => x.Status == “Deferida” && !string.IsNullOrEmpty(x.UsuarioQueHomologou) (2 pontos)

 

Na tela de home/index, estão sendo utilizados os seguintes métodos:

  1. Método: Férias dos servidores (servidorrepository/BuscarQuantidadeDeRemarcacaoPorUnidadeOrcamentaria)

Melhoria: Analisar por que essa consulta está demorando tanto (5 pontos)

 

 

Time Vingadores:

 
  • André Honório de Andrade da Silva (DEV Team)
    • Gustavo Felix Gomes (DEV Team)
    • Rafael Passos dos Santos (DEV Team)
    • Emanuel Rufino Alcantara de Lima (Dev Team)
    • Euriane Nogueira Frota (Product Owner)
    • Moisés Santos Rodrigues (Scrum Master)