Escolar Documentos
Profissional Documentos
Cultura Documentos
partir deste momento, todas as aes executadas no sistema que envolva sentenas SQL sero gravadas na Tabela GDATALOG para monitoramento. Exemplo: Se um usurio deseja fazer um relatrio que exiba a listagem de funcionrios, contendo os campos chapa, nome e salrio, o mesmo poder ser feito atravs de sentena SQL da seguinte forma: Opo 1. [Select chapa, nome, salrio from pfunc], com esta sentena o sistema far uma pesquisa na tabela PFUNC nos campos CHAPA, NOME e SALRIO e exibir a listagem de funcionrios no relatrio. Ou Opo 2. [Select * from pfunc], com esta sentena o sistema far uma pesquisa na tabela PFUNC em todos os campos e exibir a listagem de funcionrios no relatrio. Em ambas as sentenas SQL sero possveis conseguir a listagem de funcionrios, mas usando-se a sentena SQL da opo 2, o sistema far uma busca em mais de 150 campos da tabela, proporcionando assim perda de performance do sistema, visto que demandar de mais tempo de processamento para buscar as informaes no banco de dados. Usando-se a sentena SQL da opo 1, o sistema no analisar todos os campos, e sim, os trs que foram descritos (chapa, nome, salrio). A listagem de funcionrios ser exibida de uma forma mais rpida e no demandar de tantos recursos para a gerao da listagem. Tratando-se de relatrios complexos, este processo pode causar instabilidade no sistema, podendo acarretar em seu travamento. O Log de Comandos SQL quando ativado, armazena as sentenas SQL executadas na tabela GDATALOG. Quando for notado que o sistema est lento, este Log dever ser habilitado e posteriormente o administrador do sistema poder consultar a tabela GDATALOG para verificar se esto sendo executadas no sistema sentenas SQL consideradas incorretas que oneram o desempenho.
1.2. Exemplo Prtico de uma Sentena SQL considerada Incorreta pelo sistema
Foi inserido no sistema uma sentena SQL [select * from pfunc], conforme descrito na opo 2 que pode onerar na performance do sistema. Ao executar esta sentena ser gravado um registro na tabela GDATALOG, visto que esta sentena considerada incorreta. O registro abaixo (Fig.3) foi extrado do Banco de Dados da Tabela GDATALOG aps a execuo da sentena SQL.
Para esta sentena, foram registradas duas observaes no campo [MESSAGE]. O sistema informou que: Obs 1: Sentena executada sem a propriedade NO LOCK que se trata de um recurso para bancos SQL SERVER para melhorar o desempenho de sentenas SQL Obs 2: Sentena executada com a clusula *, ou seja, a sentena leu inmeros campos sem necessidade, no nosso caso, analisou 178 campos de 50 funcionrios. A necessidade era ler apenas 3 campos (chapa, nome, salrio).
1.3. Exemplo Prtico de uma Sentena SQL considerada Correta pelo sistema
Foi inserido no sistema uma sentena SQL [select chapa, nome, salario from pfunc (NOLOCK)], conforme descrito na opo 1. Ao executar esta sentena NO ser gravado nenhum registro na tabela GDATALOG, visto que esta sentena considerada correta. OBS: A sentena SQL apesar de estar correta, poder ser gravada na Tabela GDATALOG se ultrapassar 30 segundos que o tempo padro aceitvel pelo sistema.
Consulta SQL
Fig. 4 Cadastro de
De acordo com a tela acima (Fig. 5) vo ser gravadas sentenas SQL na tabela GDATALOG que ultrapassem o tempo de 2 minutos (value = 120 significa 120 segundos = 2 minutos) e no mais 30 segundos como adotado pelo sistema. OBS: Os parmetros BadSyntaxLogEnabled e QueryWaitTimeLog devero ser retirados do arquivo de configurao do HOST aps serem analisados, caso contrrio, a tabela GDATALOG continuar gravando as sentenas SQL executadas pelo sistema. O uso destes parmetros se faz necessrio apenas para analisar o que est sendo processado. Aps a captura dos dados, no mais preciso manter a configurao no arquivo de HOST.
Informaes Adicionais
de extrema importncia o bom uso destes parmetros. No podemos deixar de desabilit-los quando no mais forem necessrios. Os mesmos devero ser utilizados somente para anlise de desempenho do sistema.