Mudanças entre as edições de "Almoxarifado 1.1.0.0"
(→Cenários de uso) |
(→Resultado dos testes) |
||
(9 revisões intermediárias pelo mesmo usuário não estão sendo mostradas) | |||
Linha 11: | Linha 11: | ||
=== Observação do teste === | === Observação do teste === | ||
− | Para a realização dos testes foram encontradas dificuldades com o core | + | Para a realização dos testes foram encontradas dificuldades com o core utilizado pelo sistema, uma vez que o mesmo possui bugs na personalização de usuários. |
+ | |||
+ | O teste foi executado em várias etapas sendo que em cada uma era acrescentado mais 100 usuários simultâneos. Os teste foram executados por 30 minutos. Para os testes foram utilizados: | ||
+ | * 1 Servidor de bando de dados; | ||
+ | * 2 Servidores web; | ||
+ | * 4 Test agent; | ||
=== Análise do teste === | === Análise do teste === | ||
− | Em | + | A aplicação não utiliza muito processamento, estando o disco na maior parte do tempo ocioso. Referente ao processador foi observada uma elevada taxa de mudança de contexto, o que significa que o processador é compartilhado repetidamente, por exemplo, por muitos segmentos de igual prioridade. A alta taxa de contexto-chave muitas vezes indica que existem muitos segmentos que competem para os processadores no sistema. A taxa de trocas de contexto também pode afetar o desempenho de computadores com múltiplos processadores. |
+ | |||
+ | Em contrapartida o sistema utiliza uma grande quantidade de memória, tanto física quanto virtual. A principal utilização de memória é realizada pelos servidores web, tendo o servidor de bando de dados a menor utilização de memória. | ||
+ | |||
+ | Foi possível observar os pontos listados abaixo durante a execução dos teste: | ||
+ | *1) A grande ocorrência de falhas de conexão, principalmente no servidor web01. | ||
+ | *2) A fila de disco ficou acima do recomendado em um momento no bando de dados, ao qual chegou ao valor de 4,06 ao ter 1400 usuários simultâneos. | ||
+ | *3) Grande quantidade de request bloqueados no banco de dados. | ||
+ | No bando de dados SQL o contador Buffer chache hit radio ficou dentro dos padrões, entre 99 - 100%. O Laze write/sec ficou zerado. | ||
=== Cenários de uso === | === Cenários de uso === | ||
Linha 190: | Linha 203: | ||
{| class="wikitable" | {| class="wikitable" | ||
− | !colspan="6"|Cenário de uso #7 - | + | !colspan="6"|Cenário de uso #7 - Cotação para compra |
|- | |- | ||
|colspan="2"| Ação realizada || Think Time (segundos) | |colspan="2"| Ação realizada || Think Time (segundos) | ||
Linha 215: | Linha 228: | ||
|- | |- | ||
|} | |} | ||
+ | |||
+ | |||
+ | |||
+ | {| class="wikitable" | ||
+ | !colspan="6"|Cenário de uso #8 - Requisição de material | ||
+ | |- | ||
+ | |colspan="2"| Ação realizada || Think Time (segundos) | ||
+ | |- | ||
+ | |colspan="2"|8 - Acessar tela de requisição de material || style="text-align: center; | 5 | ||
+ | |- | ||
+ | |colspan="2"|8 - Clicar em "Incluir requisição de material" || style="text-align: center; | 4 | ||
+ | |- | ||
+ | |colspan="2"|8 - Preencher campo "Unidade de almoxarifado solicitante" || style="text-align: center; | 4 | ||
+ | |- | ||
+ | |colspan="2"|8 - Clicar em "Adicionar material" || style="text-align: center; | 4 | ||
+ | |- | ||
+ | |colspan="2"|8 - Preencher campo "Grupo de material" || style="text-align: center; | 4 | ||
+ | |- | ||
+ | |colspan="2"|8 - Pesquisar material || style="text-align: center; | 6 | ||
+ | |- | ||
+ | |colspan="2"|8 - Selecionar material || style="text-align: center; | 9 | ||
+ | |- | ||
+ | |colspan="2"|8 - Clicar em "Adicionar" || style="text-align: center; | 4 | ||
+ | |- | ||
+ | |colspan="2"|8 - Preencher campo "Unidade de medidade de conversão" || style="text-align: center; | 4 | ||
+ | |- | ||
+ | |colspan="2"|8 - Preencher campo "Quantidade" || style="text-align: center; | 4 | ||
+ | |- | ||
+ | |colspan="2"|8 - Salvar requisição de material || style="text-align: center; | 10 | ||
+ | |- | ||
+ | |colspan="2"|8 - Logout || style="text-align: center; | 5 | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | |||
+ | {| class="wikitable" | ||
+ | !colspan="6"|Cenário de uso #9 - Movimentação de transferência | ||
+ | |- | ||
+ | |colspan="2"| Ação realizada || Think Time (segundos) | ||
+ | |- | ||
+ | |colspan="2"|9 - Acessar tela de movimentação de transferência || style="text-align: center; | 5 | ||
+ | |- | ||
+ | |colspan="2"|9 - Clicar em "Incluir movimentação" || style="text-align: center; | 4 | ||
+ | |- | ||
+ | |colspan="2"|9 - Preencher campo "Unidade de almoxarifado solicitante" || style="text-align: center; | 4 | ||
+ | |- | ||
+ | |colspan="2"|9 - Clicar em "Adicionar material" || style="text-align: center; | 4 | ||
+ | |- | ||
+ | |colspan="2"|9 - Preencher campo "Grupo de material" || style="text-align: center; | 4 | ||
+ | |- | ||
+ | |colspan="2"|9 - Pesquisar material || style="text-align: center; | 6 | ||
+ | |- | ||
+ | |colspan="2"|9 - Selecionar material || style="text-align: center; | 9 | ||
+ | |- | ||
+ | |colspan="2"|9 - Clicar em "Adicionar" || style="text-align: center; | 4 | ||
+ | |- | ||
+ | |colspan="2"|9 - Preencher campo "Unidade de medidade de conversão" || style="text-align: center; | 4 | ||
+ | |- | ||
+ | |colspan="2"|9 - Preencher campo "Quantidade" || style="text-align: center; | 4 | ||
+ | |- | ||
+ | |colspan="2"|9 - Salvar requisição de material || style="text-align: center; | 10 | ||
+ | |- | ||
+ | |colspan="2"|9 - Logout || style="text-align: center; | 5 | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | |||
+ | {| class="wikitable" | ||
+ | !colspan="6"|Cenário de uso #10 - Atender requisições | ||
+ | |- | ||
+ | |colspan="2"| Ação realizada || Think Time (segundos) | ||
+ | |- | ||
+ | |colspan="2"|10 - Acessar tela de atendimento de requesição || style="text-align: center; | 5 | ||
+ | |- | ||
+ | |colspan="2"|10 - Pesquisar requisição || style="text-align: center; | 6 | ||
+ | |- | ||
+ | |colspan="2"|10 - Selecionar requisição || style="text-align: center; | * | ||
+ | |- | ||
+ | |colspan="2"|10 - Clicar em "Atendimento e requisição" || style="text-align: center; | 4 | ||
+ | |- | ||
+ | |colspan="2"|10 - Clicar em "Validar e reservar" || style="text-align: center; | 4 | ||
+ | |- | ||
+ | |colspan="2"|9 - Logout || style="text-align: center; | 5 | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | === TOP 10 queries mais lentas === | ||
+ | |||
+ | * Item 1 | ||
+ | <syntaxhighlight lang="sql" line="1" > | ||
+ | SELECT | ||
+ | gm.gm_id, | ||
+ | gm.gm_descricao, | ||
+ | sgm.sgm_id, | ||
+ | sgm.sgm_descricao, | ||
+ | mat.mat_id, | ||
+ | mat.mat_descricao, | ||
+ | mat.um_id, | ||
+ | um.um_sigla | ||
+ | |||
+ | FROM dbo.UnidadeAlmoxarifado ual WITH (NOLOCK) | ||
+ | INNER JOIN UnidadeAlmoxarifadoGrupo uag WITH(NOLOCK) | ||
+ | ON uag.uad_id = ual.uad_id | ||
+ | INNER JOIN dbo.GrupoMaterial gm WITH (NOLOCK) | ||
+ | ON uag.gm_id = gm.gm_id | ||
+ | INNER JOIN dbo.SubGrupoMaterial sgm WITH (NOLOCK) | ||
+ | ON uag.sgm_id = sgm.sgm_id | ||
+ | INNER JOIN dbo.Material mat WITH (NOLOCK) | ||
+ | ON uag.gm_id = mat.gm_id AND | ||
+ | uag.sgm_id = mat.sgm_id | ||
+ | INNER JOIN dbo.UnidadeMedida um WITH (NOLOCK) | ||
+ | ON mat.um_id = um.um_id | ||
+ | |||
+ | WHERE (@gm_id IS NULL OR uag.gm_id = @gm_id) | ||
+ | AND (@sgm_id IS NULL OR uag.sgm_id = @sgm_id) | ||
+ | AND (@mat_descricao IS NULL OR mat.mat_descricao LIKE '%' + @mat_descricao + '%') | ||
+ | AND (ual.ual_situacao <> 3) | ||
+ | AND (uag.uag_situcao <> 3) | ||
+ | AND (gm.gm_situacao <> 3) | ||
+ | AND (sgm.sgm_situacao <> 3) | ||
+ | AND (mat.mat_situacao = 1) | ||
+ | |||
+ | GROUP BY gm.gm_id, | ||
+ | gm.gm_descricao, | ||
+ | sgm.sgm_id, | ||
+ | sgm.sgm_descricao, | ||
+ | mat.mat_id, | ||
+ | mat.mat_descricao, | ||
+ | mat.um_id, | ||
+ | um.um_sigla | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | * Item 2 | ||
+ | <syntaxhighlight lang="sql" line="1" > | ||
+ | SELECT DISTINCT | ||
+ | gm.gm_id, | ||
+ | gm.gm_descricao, | ||
+ | gm.gm_situacao, | ||
+ | gm.gm_dataCriacao, | ||
+ | gm.gm_dataAlteracao | ||
+ | |||
+ | FROM dbo.GrupoMaterial gm WITH (NOLOCK) | ||
+ | INNER JOIN dbo.SubGrupoMaterial sgm WITH (NOLOCK) | ||
+ | ON gm.gm_id = sgm.gm_id | ||
+ | INNER JOIN dbo.UnidadeAlmoxarifadoGrupo uag WITH(NOLOCK) | ||
+ | ON uag.gm_id = gm.gm_id | ||
+ | AND uag.sgm_id = sgm.sgm_id | ||
+ | INNER JOIN dbo.Material mat WITH(NOLOCK) | ||
+ | ON gm.gm_id = mat.gm_id | ||
+ | AND sgm.sgm_id = mat.sgm_id | ||
+ | |||
+ | WHERE gm.gm_situacao = 1 | ||
+ | AND sgm.sgm_situacao = 1 | ||
+ | AND uag.uag_situcao = 1 | ||
+ | AND (@uad_id IS NULL OR uag.uad_id = @uad_id) | ||
+ | |||
+ | GROUP BY gm.gm_descricao, gm.gm_id, gm.gm_situacao, gm.gm_dataCriacao, gm.gm_dataAlteracao | ||
+ | |||
+ | ORDER BY gm.gm_descricao | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | * Item 3 | ||
+ | <syntaxhighlight lang="sql" line="1" > | ||
+ | SELECT TOP 1 | ||
+ | mat.mat_id, -- Código do material | ||
+ | mat.mat_descricao, -- Descrição do material | ||
+ | mat.mat_situacao, -- Situação do material (1: Ativo; 2: Bloqueado; 3: Excluído) | ||
+ | mat.gm_id, -- Código do grupo do material | ||
+ | mat.sgm_id -- Código do subgrupo do material | ||
+ | |||
+ | |||
+ | FROM dbo.Material mat WITH (NOLOCK) | ||
+ | |||
+ | WHERE mat.mat_situacao <> 3 -- Todos os materiais que NÃO foram excluídos | ||
+ | AND (mat.mat_descricao = @mat_descricao) | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | * Item 4 | ||
+ | <syntaxhighlight lang="sql" line="1" > | ||
+ | SELECT | ||
+ | stc.stc_id | ||
+ | ,stc.for_idPreferencia | ||
+ | ,stc.uad_idSolicitante | ||
+ | ,UA.uad_nome AS uad_nomeSolcitante | ||
+ | ,stc.uad_idDestino | ||
+ | ,stc.stc_status | ||
+ | ,stc.stc_situacao | ||
+ | ,stc.stc_dataCriacao | ||
+ | ,stc.stc_dataConclusao | ||
+ | ,stc.stc_dataAlteracao | ||
+ | |||
+ | FROM dbo.SolicitacaoCompra stc WITH(NOLOCK) | ||
+ | INNER JOIN Synonym_SYS_UnidadeAdministrativa UA WITH(NOLOCK) | ||
+ | ON stc.uad_idSolicitante = UA.uad_id | ||
+ | |||
+ | WHERE (@uad_id IS NULL OR stc.uad_idSolicitante = @uad_id) | ||
+ | AND (@Status IS NULL OR stc.stc_status = @Status) | ||
+ | AND (@DTInicio IS NULL OR CAST(stc.stc_dataCriacao AS DATE) >= @DTInicio) | ||
+ | AND (@DTFim IS NULL OR CAST(stc.stc_dataCriacao AS DATE) <= @DTFim) | ||
+ | |||
+ | ORDER BY stc.stc_dataCriacao DESC | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | * Item 5 | ||
+ | <syntaxhighlight lang="sql" line="1" > | ||
+ | SELECT | ||
+ | rqm.rqm_id | ||
+ | ,rqm.uad_idSolicitante | ||
+ | ,rqm.uad_idDestino | ||
+ | ,UA.uad_nome AS uad_nomeSolicitante | ||
+ | ,rqm.rqm_status | ||
+ | ,rqm.rqm_situacao | ||
+ | ,rqm.rqm_dataCriacao | ||
+ | ,rqm.rqm_dataConclusao | ||
+ | ,rqm.rqm_dataAlteracao | ||
+ | |||
+ | FROM RequisicaoMaterial rqm WITH(NOLOCK) | ||
+ | |||
+ | -- Departamento para o qual a requisição foi realizada | ||
+ | INNER JOIN Synonym_SYS_UnidadeAdministrativa UA WITH(NOLOCK) | ||
+ | ON rqm.uad_idSolicitante = UA.uad_id | ||
+ | --INNER JOIN Synonym_SYS_TipoUnidadeAdministrativa TUA WITH(NOLOCK) | ||
+ | -- ON rqm.tua_id = TUA.tua_id | ||
+ | |||
+ | WHERE (@uad_id IS NULL OR rqm.uad_idSolicitante = @uad_id) | ||
+ | AND (@Status IS NULL OR rqm.rqm_status = @Status) | ||
+ | AND (@DTInicio IS NULL OR CAST(rqm.rqm_dataCriacao AS DATE) >= @DTInicio) | ||
+ | AND (@DTFim IS NULL OR CAST(rqm.rqm_dataCriacao AS DATE) <= @DTFim) | ||
+ | |||
+ | ORDER BY rqm.rqm_dataCriacao | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | * Item 6 | ||
+ | <syntaxhighlight lang="sql" line="1" > | ||
+ | INSERT INTO | ||
+ | MovimentacaoEstoque | ||
+ | ( | ||
+ | mve_id | ||
+ | , mve_ano | ||
+ | , usu_id | ||
+ | , tme_id | ||
+ | , tme_movimento | ||
+ | , uad_id_origem | ||
+ | , uad_id_destino | ||
+ | , mve_justificativa | ||
+ | , mve_situacao | ||
+ | , mve_dataCriacao | ||
+ | , mve_dataAlteracao | ||
+ | |||
+ | ) | ||
+ | VALUES | ||
+ | ( | ||
+ | @mve_id | ||
+ | , @mve_ano | ||
+ | , @usu_id | ||
+ | , @tme_id | ||
+ | , @tme_movimento | ||
+ | , @uad_id_origem | ||
+ | , @uad_id_destino | ||
+ | , @mve_justificativa | ||
+ | , @mve_situacao | ||
+ | , @mve_dataCriacao | ||
+ | , @mve_dataAlteracao | ||
+ | |||
+ | ) | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | * Item 7 | ||
+ | <syntaxhighlight lang="sql" line="1" > | ||
+ | INSERT INTO | ||
+ | ReceberMaterialItem | ||
+ | ( | ||
+ | rbm_id | ||
+ | ,rbm_ano | ||
+ | ,mat_id | ||
+ | ,mat_descricao | ||
+ | ,cfop_id | ||
+ | ,rbi_quantidadeRecebida | ||
+ | ,rbi_valorICMS | ||
+ | ,rbi_valorIPI | ||
+ | ,rbi_situacao | ||
+ | ,rbi_dataCriacao | ||
+ | ,rbi_dataAlteracao | ||
+ | ,um_id_conversao | ||
+ | ,rbi_valorUnitario | ||
+ | ,rbi_valorTotal | ||
+ | ,rbi_quantidadeTotal | ||
+ | ,um_sigla | ||
+ | |||
+ | |||
+ | ) | ||
+ | VALUES | ||
+ | ( | ||
+ | @rbm_id | ||
+ | , @rbm_ano | ||
+ | , @mat_id | ||
+ | , @mat_descricao | ||
+ | , @cfop_id | ||
+ | , @rbi_quantidadeRecebida | ||
+ | , @rbi_valorICMS | ||
+ | , @rbi_valorIPI | ||
+ | , @rbi_situacao | ||
+ | , @rbi_dataCriacao | ||
+ | , @rbi_dataAlteracao | ||
+ | , @um_id_conversao | ||
+ | , @rbi_valorUnitario | ||
+ | , @rbi_valorTotal | ||
+ | , @rbi_quantidadeTotal | ||
+ | , @um_sigla | ||
+ | |||
+ | |||
+ | ) | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | * Item 8 | ||
+ | <syntaxhighlight lang="sql" line="1" > | ||
+ | INSERT INTO | ||
+ | DocumentoFiscalEntrada | ||
+ | ( | ||
+ | dfe_id | ||
+ | , dfe_ano | ||
+ | , dfe_numero | ||
+ | , dfe_serie | ||
+ | , dfe_dataEmissao | ||
+ | , dfe_baseCalculoICMS | ||
+ | , dfe_valorICMS | ||
+ | , dfe_baseCalculoICMSSubst | ||
+ | , dfe_valorICMSSubst | ||
+ | , dfe_valorTotalProdutos | ||
+ | , dfe_valorFrete | ||
+ | , dfe_valorSeguro | ||
+ | , dfe_valorOutras | ||
+ | , dfe_valorIPI | ||
+ | , dfe_valorNota | ||
+ | , dfe_desconto | ||
+ | , dfe_situacao | ||
+ | , dfe_dataCriacao | ||
+ | , dfe_dataAlteracao | ||
+ | |||
+ | ) | ||
+ | VALUES | ||
+ | ( | ||
+ | @dfe_id | ||
+ | , @dfe_ano | ||
+ | , @dfe_numero | ||
+ | , @dfe_serie | ||
+ | , @dfe_dataEmissao | ||
+ | , @dfe_baseCalculoICMS | ||
+ | , @dfe_valorICMS | ||
+ | , @dfe_baseCalculoICMSSubst | ||
+ | , @dfe_valorICMSSubst | ||
+ | , @dfe_valorTotalProdutos | ||
+ | , @dfe_valorFrete | ||
+ | , @dfe_valorSeguro | ||
+ | , @dfe_valorOutras | ||
+ | , @dfe_valorIPI | ||
+ | , @dfe_valorNota | ||
+ | , @dfe_desconto | ||
+ | , @dfe_situacao | ||
+ | , @dfe_dataCriacao | ||
+ | , @dfe_dataAlteracao | ||
+ | |||
+ | ) | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | * Item 9 | ||
+ | <syntaxhighlight lang="sql" line="1" > | ||
+ | INSERT INTO | ||
+ | MovimentacaoEstoque | ||
+ | ( | ||
+ | mve_id | ||
+ | , mve_ano | ||
+ | , usu_id | ||
+ | , tme_id | ||
+ | , tme_movimento | ||
+ | , uad_id_origem | ||
+ | , uad_id_destino | ||
+ | , mve_justificativa | ||
+ | , mve_situacao | ||
+ | , mve_dataCriacao | ||
+ | , mve_dataAlteracao | ||
+ | |||
+ | ) | ||
+ | VALUES | ||
+ | ( | ||
+ | @mve_id | ||
+ | , @mve_ano | ||
+ | , @usu_id | ||
+ | , @tme_id | ||
+ | , @tme_movimento | ||
+ | , @uad_id_origem | ||
+ | , @uad_id_destino | ||
+ | , @mve_justificativa | ||
+ | , @mve_situacao | ||
+ | , @mve_dataCriacao | ||
+ | , @mve_dataAlteracao | ||
+ | |||
+ | ) | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | * Item 10 | ||
+ | <syntaxhighlight lang="sql" line="1" > | ||
+ | SELECT | ||
+ | UA.uad_id, | ||
+ | UA.uad_nome | ||
+ | FROM | ||
+ | Synonym_SYS_UnidadeAdministrativa AS UA WITH(NOLOCK) | ||
+ | INNER JOIN Synonym_SYS_Entidade AS ENT WITH(NOLOCK) | ||
+ | ON ENT.ent_id = UA.ent_id | ||
+ | INNER JOIN Synonym_SYS_TipoUnidadeAdministrativa AS TUA WITH(NOLOCK) | ||
+ | ON UA.tua_id = TUA.tua_id | ||
+ | INNER JOIN dbo.UnidadeAlmoxarifado AS UAL WITH(NOLOCK) | ||
+ | ON UAL.uad_id = UA.uad_id | ||
+ | WHERE | ||
+ | UA.uad_situacao = 1 | ||
+ | AND ENT.ent_situacao = 1 | ||
+ | AND TUA.tua_situacao = 1 | ||
+ | AND @ent_id = ENT.ent_id | ||
+ | AND @tua_id = UA.tua_id | ||
+ | AND (@uad_id IS NULL OR @uad_id = UA.uad_id) | ||
+ | AND UAL.ual_situacao = 1 | ||
+ | |||
+ | GROUP BY | ||
+ | UA.uad_id, | ||
+ | UA.uad_nome | ||
+ | |||
+ | ORDER BY UA.uad_nome | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | |||
=== Resultado dos testes === | === Resultado dos testes === | ||
Nesta seção serão apresentados os resultados obtidos da execução dos testes. | Nesta seção serão apresentados os resultados obtidos da execução dos testes. | ||
− | *''' | + | *'''Processador e disco''' |
− | : Descrição: | + | |
+ | : Contador: Percentagem de tempo ocioso. | ||
+ | : Descrição: Este contador fornece quanto tempo o disco permaneceu em estado de repouso, ou seja, todos os pedidos do sistema operacional para o disco ter sido concluída e há zero de pedidos pendentes. Este contador varia de 100 (ou seja, sempre ocioso) para 0 (ou seja, sempre ocupado). | ||
: Limite recomendado: Abaixo de 75 %. | : Limite recomendado: Abaixo de 75 %. | ||
− | : Análise: | + | : Análise: O processor fica grande parte do tempo ocioso. |
− | :::::: [[Arquivo:]] | + | :::::: [[Arquivo:2016-08-10 Amoxarifado TempoOcioso.png]] |
+ | : Contador: Percentagem de espaço livre. | ||
+ | : Descrição: Mostra a porcentagem do espaço total utilizável no disco lógico selecionado. | ||
+ | : Limite recomendado: Acima de 25%. | ||
+ | : Análise: Aplicação está dentro do recomendado. | ||
− | + | :::::: [[Arquivo:2016-08-10 Almoxarifado EspacoLivre.png]] | |
− | : | + | |
− | : | + | |
− | : | + | |
− | :::::: | + | : Tempo total do processador. |
+ | : Descrição: Mede a utilização da CPU de cada processador. | ||
+ | : Limite recomendado: Não exceder 80% por mais de 10 minutos ao longo do período de teste. | ||
+ | : Análise: Aplicação está dentro do recomendado. | ||
+ | :::::: [[Arquivo:2016-08-10 Almoxarifado TempoTotalDoProcessador.png]] | ||
− | *'''Kbytes totais pela interface de rede | + | : Contador: Mudança de contexto. |
+ | : Descrição: A mudança de contexto ocorre quando o kernel muda o processador de um segmento para outro, por exemplo, quando um segmento com uma prioridade maior do que o segmento em execução torna-se pronto. | ||
+ | : Limite recomendado: Quanto menor melhor. | ||
+ | : Análise: Aplicação possui um número elevado. | ||
+ | |||
+ | :::::: [[Arquivo:2016-08-10 Almoxarifado MudancaContexto.png]] | ||
+ | |||
+ | |||
+ | *'''Memória''' | ||
+ | |||
+ | : Contador: Páginas/segundo. | ||
+ | : Descrição: Mede o número de páginas por segundo que são paginadas fora da memória RAM para a memória virtual. | ||
+ | : Limite recomendado: Se o número for alto indica falhas graves. O limite normalmente é de 20 páginas/s | ||
+ | : Análise: A aplicação entra-se dentro do recomendado. | ||
+ | |||
+ | :::::: [[Arquivo:2016-08-10 Almoxarifado Paginas.png]] | ||
+ | |||
+ | : Contador: % Memória virtual comprometida. | ||
+ | : Descrição: Indica a percentagem da memória comprometida utilizada dentro do limite dado pela soma da memória RAM e Page File. | ||
+ | : Limite recomendado: Abaixo de 75% e que não tenha grande variação no indicador. | ||
+ | : Análise: A aplicação aproxima-se bastante do recomendado. | ||
+ | |||
+ | :::::: [[Arquivo:2016-08-10 Almoxarifado MemoriaComprometida.png]] | ||
+ | |||
+ | |||
+ | : Contador: Memória disponível em MBytes. | ||
+ | : Descrição: Indica quantidade de memória disponível para alocação em MBytes. | ||
+ | : Limite recomendado: Se o valor for inferior a 20/25 por cento de RAM instalada é uma indicação de memória insuficiente. Menos de 100 MB é uma indicação de que o sistema é muito carente de memória e paginação. | ||
+ | : Análise: Os servidores web aproximam-se bastante dos limites recomendados. | ||
+ | |||
+ | :::::: [[Arquivo:2016-08-10 Almoxarifao MemoriaDisponivel.png]] | ||
+ | |||
+ | |||
+ | *'''Network''' | ||
+ | |||
+ | : Contador: Kbytes totais pela interface de rede. | ||
: Descrição: Indica quantos Kbytes foram enviados e recebidos a cada segundo pela interface de rede. | : Descrição: Indica quantos Kbytes foram enviados e recebidos a cada segundo pela interface de rede. | ||
: Limite recomendado: Menor que 5 Mbytes para uma rede de 100Mbps, menor que 50 Mbytes para uma rede de 1000 Mbps. (Quanto menor melhor). | : Limite recomendado: Menor que 5 Mbytes para uma rede de 100Mbps, menor que 50 Mbytes para uma rede de 1000 Mbps. (Quanto menor melhor). | ||
− | : Análise: | + | : Análise: O servidor de bando de dados utiliza maior tráfego de rede. |
− | :::::: [[Arquivo:]] | + | :::::: [[Arquivo:2016-08-10 Almoxarifado InterfaceDeRedeTotal.png]] |
+ | : Contador: Falhas de conexão (TCP) | ||
+ | : Descrição: Este é o número bruto de conexões TCP que falharam desde que o servidor foi iniciado. Uma falha normalmente indica uma perda de dados em lugar no processo. A perda pode ocorrer em muitos locais. Esta poderia ser uma indicação de um outro dispositivo que está sendo para baixo, ou problemas com a configuração do lado do cliente do software. | ||
+ | : Limite recomendado: Quanto menor melhor. | ||
+ | : Análise: Grande ocorrência de falhas, principalmente no servidor web. | ||
− | + | :::::: [[Arquivo:2016-08-10 Almoxarifado ConexoesFalhas.png]] | |
− | : | + | |
− | : | + | |
− | : | + | |
− | |||
+ | *'''SQL''' | ||
− | + | : Contador: Expectativa de vida da página. | |
− | : Descrição: Indica | + | : Descrição: Indica o número em segundos que uma página vai ficar na área de buffers, sem referências. |
− | : Limite recomendado: Quanto | + | : Limite recomendado: Quanto menor melhor. |
− | + | ||
− | :::::: [[Arquivo:]] | + | :::::: [[Arquivo:2016-08-10 Almoxarifado ExpectativaVidaPagina.png]] |
+ | |||
+ | : Contador: Número de deadlocks por segundo. | ||
+ | : Descrição: Informa a contagem de quantos deadlocks estão ocorrendo por segundo no sistema. | ||
+ | : Limite recomendado: Quanto menor melhor. | ||
+ | :::::: [[Arquivo:2016-08-10 Almoxarifado DeadlockSegundo.png]] | ||
− | + | : Contador: Request bloqueados. | |
− | : Descrição: | + | : Descrição: Informa a quantidade de resquest bloqueados. |
: Limite recomendado: Quanto menor melhor. | : Limite recomendado: Quanto menor melhor. | ||
− | |||
− | :::::: [[Arquivo:]] | + | :::::: [[Arquivo:2016-08-10 Almoxarifado RequestsBloqueados.png]] |
Edição atual tal como às 17h13min de 21 de novembro de 2016
Índice
Sistemas Verificados
- Biblioteca, versão 1.45.0.0
Verificação de Segurança
Em verificação.
Verificação de Desempenho
Observação do teste
Para a realização dos testes foram encontradas dificuldades com o core utilizado pelo sistema, uma vez que o mesmo possui bugs na personalização de usuários.
O teste foi executado em várias etapas sendo que em cada uma era acrescentado mais 100 usuários simultâneos. Os teste foram executados por 30 minutos. Para os testes foram utilizados:
- 1 Servidor de bando de dados;
- 2 Servidores web;
- 4 Test agent;
Análise do teste
A aplicação não utiliza muito processamento, estando o disco na maior parte do tempo ocioso. Referente ao processador foi observada uma elevada taxa de mudança de contexto, o que significa que o processador é compartilhado repetidamente, por exemplo, por muitos segmentos de igual prioridade. A alta taxa de contexto-chave muitas vezes indica que existem muitos segmentos que competem para os processadores no sistema. A taxa de trocas de contexto também pode afetar o desempenho de computadores com múltiplos processadores.
Em contrapartida o sistema utiliza uma grande quantidade de memória, tanto física quanto virtual. A principal utilização de memória é realizada pelos servidores web, tendo o servidor de bando de dados a menor utilização de memória.
Foi possível observar os pontos listados abaixo durante a execução dos teste:
- 1) A grande ocorrência de falhas de conexão, principalmente no servidor web01.
- 2) A fila de disco ficou acima do recomendado em um momento no bando de dados, ao qual chegou ao valor de 4,06 ao ter 1400 usuários simultâneos.
- 3) Grande quantidade de request bloqueados no banco de dados.
No bando de dados SQL o contador Buffer chache hit radio ficou dentro dos padrões, entre 99 - 100%. O Laze write/sec ficou zerado.
Cenários de uso
Cenário de uso #1 - Login | |||||
---|---|---|---|---|---|
Ação realizada | Think Time (segundos) | ||||
1 - Acessar tela de login | 3 | ||||
1 - Realizar login | 7 | ||||
1 - Selecionar sistema Transporte Escolar | 5 |
Cenário de uso #2 - Cadastro de material | |||||
---|---|---|---|---|---|
Ação realizada | Think Time (segundos) | ||||
2 - Acessar tela de consulta de material | 5 | ||||
2 - Clicar em "Incluir material" | 4 | ||||
2 - Preencher campo "Grupo" | 14 | ||||
2 - Salvar cadastro de material | 10 | ||||
2 - Logout | 5 |
Cenário de uso #3 - Recebimento de material | |||||
---|---|---|---|---|---|
Ação realizada | Think Time (segundos) | ||||
3 - Acessar tela de consulta de recebimento de materiais | 5 | ||||
3 - Clicar em "Incluir recebimento de materiais" | 4 | ||||
3 - Preencher campo "Unidade de almoxarifado" | 4 | ||||
3 - Abrir calendário | 3 | ||||
3 - Preencher campo "Fornecedor" | 8 | ||||
3 - Clicar em "Adicionar material" | 3 | ||||
3 - Preencher campo "Grupo de material" | 4 | ||||
3 - Pesquisar material | 6 | ||||
3 - Selecionar material | 9 | ||||
3 - Salvar cadastro e gerar exemplar | 7 | ||||
3 - Clicar em "Adicionar" | 4 | ||||
3 - Preencher campo "CFOP" | 5 | ||||
3 - Preencher campo "Unidade de conversão" | 5 | ||||
3 - Preencher campo "Quantidade recebida" | 4 | ||||
3 - Preencher campo "Valor unitário" | 4 | ||||
3 - Salvar cadastro | 18 | ||||
3 - Logout | 5 |
Cenário de uso #4 - Movimentação de entrada | |||||
---|---|---|---|---|---|
Ação realizada | Think Time (segundos) | ||||
4 - Acessar tela de consulta de movimentações de entrada | 5 | ||||
4 - Clicar em "Incluir movimentação" | 4 | ||||
4 - Preencher campo "Unidade de almoxarifado de destino" | 4 | ||||
4 - Clicar em "Adicionar material" | 4 | ||||
4 - Preencher campo "Grupo de material" | 4 | ||||
4 - Pesquisar material | 6 | ||||
4 - Selecionar material | 9 | ||||
4 - Clicar em "Adicionar" | 4 | ||||
4 - Preencher campo "Unidade de medida de conversão" | 5 | ||||
4 - Preencher campo "Quantidade" | 4 | ||||
4 - Salvar movimentação de entrada | 18 | ||||
4 - Logout | 5 |
Cenário de uso #5 - Movimentação de saída | |||||
---|---|---|---|---|---|
Ação realizada | Think Time (segundos) | ||||
5 - Acessar tela de movimentação de saída | 5 | ||||
5 - Clicar em "Unidade de almoxarifado de origem" | 4 | ||||
5 - Clicar em "Adicionar material" | 4 | ||||
5 - Preencher campo "Grupo de material" | 5 | ||||
5 - Pesquisar material | 6 | ||||
5 - Selecionar material | 9 | ||||
5 - Clicar em "Adicionar" | 4 | ||||
5 - Preencher campo "Unidade de medida de conversão" | 5 | ||||
5 - Preencher campo "Quantidade" | 4 | ||||
5 - Salvar cadastro | 15 | ||||
5 - Logout | 5 |
Cenário de uso #6 - Solicitação de compra | |||||
---|---|---|---|---|---|
Ação realizada | Think Time (segundos) | ||||
6 - Acessar tela de solicitação de compra | 5 | ||||
6 - Clicar em "Incluir solicitação de compra" | 4 | ||||
6 - Preencher campo "Unidade de almoxarifado solicitante" | 4 | ||||
6 - Clicar em "Adicionar material" | 4 | ||||
6 - Preencher campo "Grupo de material" | 4 | ||||
6 - Pesquisar material | 6 | ||||
6 - Selecionar um material | 9 | ||||
6 - Clicar em "Adicionar" | 4 | ||||
6 - Salvar solicitação de compra | 10 | ||||
6 - Logout | 5 |
Cenário de uso #7 - Cotação para compra | |||||
---|---|---|---|---|---|
Ação realizada | Think Time (segundos) | ||||
7 - Acessar tela de solicitação de compra | 5 | ||||
7 - Pesquisar solicitação de compra | 5 | ||||
7 - Clicar no ícone de cotação | 4 | ||||
7 - Clicar no ícone de pesquisa de fornecedor | 4 | ||||
7 - Pesquisar fornecedor | 6 | ||||
7 - Selecionar fornecedor | 9 | ||||
7 - Adicionar fornecedor | 4 | ||||
7 - Marcar fornecedor | 4 | ||||
7 - Clicar em "Finalizar" | 8 | ||||
7 - Logout | 5 |
Cenário de uso #8 - Requisição de material | |||||
---|---|---|---|---|---|
Ação realizada | Think Time (segundos) | ||||
8 - Acessar tela de requisição de material | 5 | ||||
8 - Clicar em "Incluir requisição de material" | 4 | ||||
8 - Preencher campo "Unidade de almoxarifado solicitante" | 4 | ||||
8 - Clicar em "Adicionar material" | 4 | ||||
8 - Preencher campo "Grupo de material" | 4 | ||||
8 - Pesquisar material | 6 | ||||
8 - Selecionar material | 9 | ||||
8 - Clicar em "Adicionar" | 4 | ||||
8 - Preencher campo "Unidade de medidade de conversão" | 4 | ||||
8 - Preencher campo "Quantidade" | 4 | ||||
8 - Salvar requisição de material | 10 | ||||
8 - Logout | 5 |
Cenário de uso #9 - Movimentação de transferência | |||||
---|---|---|---|---|---|
Ação realizada | Think Time (segundos) | ||||
9 - Acessar tela de movimentação de transferência | 5 | ||||
9 - Clicar em "Incluir movimentação" | 4 | ||||
9 - Preencher campo "Unidade de almoxarifado solicitante" | 4 | ||||
9 - Clicar em "Adicionar material" | 4 | ||||
9 - Preencher campo "Grupo de material" | 4 | ||||
9 - Pesquisar material | 6 | ||||
9 - Selecionar material | 9 | ||||
9 - Clicar em "Adicionar" | 4 | ||||
9 - Preencher campo "Unidade de medidade de conversão" | 4 | ||||
9 - Preencher campo "Quantidade" | 4 | ||||
9 - Salvar requisição de material | 10 | ||||
9 - Logout | 5 |
Cenário de uso #10 - Atender requisições | |||||
---|---|---|---|---|---|
Ação realizada | Think Time (segundos) | ||||
10 - Acessar tela de atendimento de requesição | 5 | ||||
10 - Pesquisar requisição | 6 | ||||
10 - Selecionar requisição | * | ||||
10 - Clicar em "Atendimento e requisição" | 4 | ||||
10 - Clicar em "Validar e reservar" | 4 | ||||
9 - Logout | 5 |
TOP 10 queries mais lentas
- Item 1
1 SELECT
2 gm.gm_id,
3 gm.gm_descricao,
4 sgm.sgm_id,
5 sgm.sgm_descricao,
6 mat.mat_id,
7 mat.mat_descricao,
8 mat.um_id,
9 um.um_sigla
10
11 FROM dbo.UnidadeAlmoxarifado ual WITH (NOLOCK)
12 INNER JOIN UnidadeAlmoxarifadoGrupo uag WITH(NOLOCK)
13 ON uag.uad_id = ual.uad_id
14 INNER JOIN dbo.GrupoMaterial gm WITH (NOLOCK)
15 ON uag.gm_id = gm.gm_id
16 INNER JOIN dbo.SubGrupoMaterial sgm WITH (NOLOCK)
17 ON uag.sgm_id = sgm.sgm_id
18 INNER JOIN dbo.Material mat WITH (NOLOCK)
19 ON uag.gm_id = mat.gm_id AND
20 uag.sgm_id = mat.sgm_id
21 INNER JOIN dbo.UnidadeMedida um WITH (NOLOCK)
22 ON mat.um_id = um.um_id
23
24 WHERE (@gm_id IS NULL OR uag.gm_id = @gm_id)
25 AND (@sgm_id IS NULL OR uag.sgm_id = @sgm_id)
26 AND (@mat_descricao IS NULL OR mat.mat_descricao LIKE '%' + @mat_descricao + '%')
27 AND (ual.ual_situacao <> 3)
28 AND (uag.uag_situcao <> 3)
29 AND (gm.gm_situacao <> 3)
30 AND (sgm.sgm_situacao <> 3)
31 AND (mat.mat_situacao = 1)
32
33 GROUP BY gm.gm_id,
34 gm.gm_descricao,
35 sgm.sgm_id,
36 sgm.sgm_descricao,
37 mat.mat_id,
38 mat.mat_descricao,
39 mat.um_id,
40 um.um_sigla
- Item 2
1 SELECT DISTINCT
2 gm.gm_id,
3 gm.gm_descricao,
4 gm.gm_situacao,
5 gm.gm_dataCriacao,
6 gm.gm_dataAlteracao
7
8 FROM dbo.GrupoMaterial gm WITH (NOLOCK)
9 INNER JOIN dbo.SubGrupoMaterial sgm WITH (NOLOCK)
10 ON gm.gm_id = sgm.gm_id
11 INNER JOIN dbo.UnidadeAlmoxarifadoGrupo uag WITH(NOLOCK)
12 ON uag.gm_id = gm.gm_id
13 AND uag.sgm_id = sgm.sgm_id
14 INNER JOIN dbo.Material mat WITH(NOLOCK)
15 ON gm.gm_id = mat.gm_id
16 AND sgm.sgm_id = mat.sgm_id
17
18 WHERE gm.gm_situacao = 1
19 AND sgm.sgm_situacao = 1
20 AND uag.uag_situcao = 1
21 AND (@uad_id IS NULL OR uag.uad_id = @uad_id)
22
23 GROUP BY gm.gm_descricao, gm.gm_id, gm.gm_situacao, gm.gm_dataCriacao, gm.gm_dataAlteracao
24
25 ORDER BY gm.gm_descricao
- Item 3
1 SELECT TOP 1
2 mat.mat_id, -- Código do material
3 mat.mat_descricao, -- Descrição do material
4 mat.mat_situacao, -- Situação do material (1: Ativo; 2: Bloqueado; 3: Excluído)
5 mat.gm_id, -- Código do grupo do material
6 mat.sgm_id -- Código do subgrupo do material
7
8
9 FROM dbo.Material mat WITH (NOLOCK)
10
11 WHERE mat.mat_situacao <> 3 -- Todos os materiais que NÃO foram excluídos
12 AND (mat.mat_descricao = @mat_descricao)
- Item 4
1 SELECT
2 stc.stc_id
3 ,stc.for_idPreferencia
4 ,stc.uad_idSolicitante
5 ,UA.uad_nome AS uad_nomeSolcitante
6 ,stc.uad_idDestino
7 ,stc.stc_status
8 ,stc.stc_situacao
9 ,stc.stc_dataCriacao
10 ,stc.stc_dataConclusao
11 ,stc.stc_dataAlteracao
12
13 FROM dbo.SolicitacaoCompra stc WITH(NOLOCK)
14 INNER JOIN Synonym_SYS_UnidadeAdministrativa UA WITH(NOLOCK)
15 ON stc.uad_idSolicitante = UA.uad_id
16
17 WHERE (@uad_id IS NULL OR stc.uad_idSolicitante = @uad_id)
18 AND (@Status IS NULL OR stc.stc_status = @Status)
19 AND (@DTInicio IS NULL OR CAST(stc.stc_dataCriacao AS DATE) >= @DTInicio)
20 AND (@DTFim IS NULL OR CAST(stc.stc_dataCriacao AS DATE) <= @DTFim)
21
22 ORDER BY stc.stc_dataCriacao DESC
- Item 5
1 SELECT
2 rqm.rqm_id
3 ,rqm.uad_idSolicitante
4 ,rqm.uad_idDestino
5 ,UA.uad_nome AS uad_nomeSolicitante
6 ,rqm.rqm_status
7 ,rqm.rqm_situacao
8 ,rqm.rqm_dataCriacao
9 ,rqm.rqm_dataConclusao
10 ,rqm.rqm_dataAlteracao
11
12 FROM RequisicaoMaterial rqm WITH(NOLOCK)
13
14 -- Departamento para o qual a requisição foi realizada
15 INNER JOIN Synonym_SYS_UnidadeAdministrativa UA WITH(NOLOCK)
16 ON rqm.uad_idSolicitante = UA.uad_id
17 --INNER JOIN Synonym_SYS_TipoUnidadeAdministrativa TUA WITH(NOLOCK)
18 -- ON rqm.tua_id = TUA.tua_id
19
20 WHERE (@uad_id IS NULL OR rqm.uad_idSolicitante = @uad_id)
21 AND (@Status IS NULL OR rqm.rqm_status = @Status)
22 AND (@DTInicio IS NULL OR CAST(rqm.rqm_dataCriacao AS DATE) >= @DTInicio)
23 AND (@DTFim IS NULL OR CAST(rqm.rqm_dataCriacao AS DATE) <= @DTFim)
24
25 ORDER BY rqm.rqm_dataCriacao
- Item 6
1 INSERT INTO
2 MovimentacaoEstoque
3 (
4 mve_id
5 , mve_ano
6 , usu_id
7 , tme_id
8 , tme_movimento
9 , uad_id_origem
10 , uad_id_destino
11 , mve_justificativa
12 , mve_situacao
13 , mve_dataCriacao
14 , mve_dataAlteracao
15
16 )
17 VALUES
18 (
19 @mve_id
20 , @mve_ano
21 , @usu_id
22 , @tme_id
23 , @tme_movimento
24 , @uad_id_origem
25 , @uad_id_destino
26 , @mve_justificativa
27 , @mve_situacao
28 , @mve_dataCriacao
29 , @mve_dataAlteracao
30
31 )
- Item 7
1 INSERT INTO
2 ReceberMaterialItem
3 (
4 rbm_id
5 ,rbm_ano
6 ,mat_id
7 ,mat_descricao
8 ,cfop_id
9 ,rbi_quantidadeRecebida
10 ,rbi_valorICMS
11 ,rbi_valorIPI
12 ,rbi_situacao
13 ,rbi_dataCriacao
14 ,rbi_dataAlteracao
15 ,um_id_conversao
16 ,rbi_valorUnitario
17 ,rbi_valorTotal
18 ,rbi_quantidadeTotal
19 ,um_sigla
20
21
22 )
23 VALUES
24 (
25 @rbm_id
26 , @rbm_ano
27 , @mat_id
28 , @mat_descricao
29 , @cfop_id
30 , @rbi_quantidadeRecebida
31 , @rbi_valorICMS
32 , @rbi_valorIPI
33 , @rbi_situacao
34 , @rbi_dataCriacao
35 , @rbi_dataAlteracao
36 , @um_id_conversao
37 , @rbi_valorUnitario
38 , @rbi_valorTotal
39 , @rbi_quantidadeTotal
40 , @um_sigla
41
42
43 )
- Item 8
1 INSERT INTO
2 DocumentoFiscalEntrada
3 (
4 dfe_id
5 , dfe_ano
6 , dfe_numero
7 , dfe_serie
8 , dfe_dataEmissao
9 , dfe_baseCalculoICMS
10 , dfe_valorICMS
11 , dfe_baseCalculoICMSSubst
12 , dfe_valorICMSSubst
13 , dfe_valorTotalProdutos
14 , dfe_valorFrete
15 , dfe_valorSeguro
16 , dfe_valorOutras
17 , dfe_valorIPI
18 , dfe_valorNota
19 , dfe_desconto
20 , dfe_situacao
21 , dfe_dataCriacao
22 , dfe_dataAlteracao
23
24 )
25 VALUES
26 (
27 @dfe_id
28 , @dfe_ano
29 , @dfe_numero
30 , @dfe_serie
31 , @dfe_dataEmissao
32 , @dfe_baseCalculoICMS
33 , @dfe_valorICMS
34 , @dfe_baseCalculoICMSSubst
35 , @dfe_valorICMSSubst
36 , @dfe_valorTotalProdutos
37 , @dfe_valorFrete
38 , @dfe_valorSeguro
39 , @dfe_valorOutras
40 , @dfe_valorIPI
41 , @dfe_valorNota
42 , @dfe_desconto
43 , @dfe_situacao
44 , @dfe_dataCriacao
45 , @dfe_dataAlteracao
46
47 )
- Item 9
1 INSERT INTO
2 MovimentacaoEstoque
3 (
4 mve_id
5 , mve_ano
6 , usu_id
7 , tme_id
8 , tme_movimento
9 , uad_id_origem
10 , uad_id_destino
11 , mve_justificativa
12 , mve_situacao
13 , mve_dataCriacao
14 , mve_dataAlteracao
15
16 )
17 VALUES
18 (
19 @mve_id
20 , @mve_ano
21 , @usu_id
22 , @tme_id
23 , @tme_movimento
24 , @uad_id_origem
25 , @uad_id_destino
26 , @mve_justificativa
27 , @mve_situacao
28 , @mve_dataCriacao
29 , @mve_dataAlteracao
30
31 )
- Item 10
1 SELECT
2 UA.uad_id,
3 UA.uad_nome
4 FROM
5 Synonym_SYS_UnidadeAdministrativa AS UA WITH(NOLOCK)
6 INNER JOIN Synonym_SYS_Entidade AS ENT WITH(NOLOCK)
7 ON ENT.ent_id = UA.ent_id
8 INNER JOIN Synonym_SYS_TipoUnidadeAdministrativa AS TUA WITH(NOLOCK)
9 ON UA.tua_id = TUA.tua_id
10 INNER JOIN dbo.UnidadeAlmoxarifado AS UAL WITH(NOLOCK)
11 ON UAL.uad_id = UA.uad_id
12 WHERE
13 UA.uad_situacao = 1
14 AND ENT.ent_situacao = 1
15 AND TUA.tua_situacao = 1
16 AND @ent_id = ENT.ent_id
17 AND @tua_id = UA.tua_id
18 AND (@uad_id IS NULL OR @uad_id = UA.uad_id)
19 AND UAL.ual_situacao = 1
20
21 GROUP BY
22 UA.uad_id,
23 UA.uad_nome
24
25 ORDER BY UA.uad_nome
Resultado dos testes
Nesta seção serão apresentados os resultados obtidos da execução dos testes.
- Processador e disco
- Contador: Percentagem de tempo ocioso.
- Descrição: Este contador fornece quanto tempo o disco permaneceu em estado de repouso, ou seja, todos os pedidos do sistema operacional para o disco ter sido concluída e há zero de pedidos pendentes. Este contador varia de 100 (ou seja, sempre ocioso) para 0 (ou seja, sempre ocupado).
- Limite recomendado: Abaixo de 75 %.
- Análise: O processor fica grande parte do tempo ocioso.
- Contador: Percentagem de espaço livre.
- Descrição: Mostra a porcentagem do espaço total utilizável no disco lógico selecionado.
- Limite recomendado: Acima de 25%.
- Análise: Aplicação está dentro do recomendado.
- Tempo total do processador.
- Descrição: Mede a utilização da CPU de cada processador.
- Limite recomendado: Não exceder 80% por mais de 10 minutos ao longo do período de teste.
- Análise: Aplicação está dentro do recomendado.
- Contador: Mudança de contexto.
- Descrição: A mudança de contexto ocorre quando o kernel muda o processador de um segmento para outro, por exemplo, quando um segmento com uma prioridade maior do que o segmento em execução torna-se pronto.
- Limite recomendado: Quanto menor melhor.
- Análise: Aplicação possui um número elevado.
- Memória
- Contador: Páginas/segundo.
- Descrição: Mede o número de páginas por segundo que são paginadas fora da memória RAM para a memória virtual.
- Limite recomendado: Se o número for alto indica falhas graves. O limite normalmente é de 20 páginas/s
- Análise: A aplicação entra-se dentro do recomendado.
- Contador: % Memória virtual comprometida.
- Descrição: Indica a percentagem da memória comprometida utilizada dentro do limite dado pela soma da memória RAM e Page File.
- Limite recomendado: Abaixo de 75% e que não tenha grande variação no indicador.
- Análise: A aplicação aproxima-se bastante do recomendado.
- Contador: Memória disponível em MBytes.
- Descrição: Indica quantidade de memória disponível para alocação em MBytes.
- Limite recomendado: Se o valor for inferior a 20/25 por cento de RAM instalada é uma indicação de memória insuficiente. Menos de 100 MB é uma indicação de que o sistema é muito carente de memória e paginação.
- Análise: Os servidores web aproximam-se bastante dos limites recomendados.
- Network
- Contador: Kbytes totais pela interface de rede.
- Descrição: Indica quantos Kbytes foram enviados e recebidos a cada segundo pela interface de rede.
- Limite recomendado: Menor que 5 Mbytes para uma rede de 100Mbps, menor que 50 Mbytes para uma rede de 1000 Mbps. (Quanto menor melhor).
- Análise: O servidor de bando de dados utiliza maior tráfego de rede.
- Contador: Falhas de conexão (TCP)
- Descrição: Este é o número bruto de conexões TCP que falharam desde que o servidor foi iniciado. Uma falha normalmente indica uma perda de dados em lugar no processo. A perda pode ocorrer em muitos locais. Esta poderia ser uma indicação de um outro dispositivo que está sendo para baixo, ou problemas com a configuração do lado do cliente do software.
- Limite recomendado: Quanto menor melhor.
- Análise: Grande ocorrência de falhas, principalmente no servidor web.
- SQL
- Contador: Expectativa de vida da página.
- Descrição: Indica o número em segundos que uma página vai ficar na área de buffers, sem referências.
- Limite recomendado: Quanto menor melhor.
- Contador: Número de deadlocks por segundo.
- Descrição: Informa a contagem de quantos deadlocks estão ocorrendo por segundo no sistema.
- Limite recomendado: Quanto menor melhor.
- Contador: Request bloqueados.
- Descrição: Informa a quantidade de resquest bloqueados.
- Limite recomendado: Quanto menor melhor.