Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

Através do TOTVS News (módulo de globais) e da visão na tela de cadastro das consultas sql do RM, os usuários que são supervisores do módulo de globais serão notificados sobre as consultas sql lentas que possuem em seu ambiente.

Esta informação é coletada pelo Snowden e importada para serem exibidas as notificações. Ao acessar as notificações os usuários têm a possibilidade de visualizar os detalhes de cada consulta sql lenta e assim tomar a decisão de corrigi-la adotando as melhores práticas de construção de uma consulta sql, poderá deixar para analisar em um segundo momento e também poderá escolher ignorar.

Exemplo de como serão exibidas as informações:


Caso escolha na tela de notificações para ignorar uma consulta sql lenta ou todas as consultas sql lentas, as mesmas não irão mais aparecer na tela de notificação, mas não quer dizer que as lentidões foram corrigidas. Portanto aconselhamos marcar esta opção somente após analisar a consulta e modificá-la para ficar mais performática. Desta forma seu sistema ficará mais rápido!

Para não trazer informações pontuais, que podem ser impactadas por algum item específico no ambiente, só serão demonstradas consultas que tiverem mais de 10 recorrências no período de 3 meses. 

Boas práticas e dicas para construção de uma consulta sql:

  • Ao escrever uma cláusula WHERE, sempre colocar a cláusula mais restritiva antes;
  • Evitar cláusulas WHERE que utilizam colunas não indexadas ou solicitar a criação do índice para a equipe de banco de dados;
  • Não esquecer de colocar (NOLOCK) nas sentenças (exceto quando se aplica exceção);
  • No SELECT, trazer apenas as colunas necessárias;
  • Para Sub-Selects na cláusula WHERE, considere utilizar EXISTS ao invés de IN;
  • Between no lugar de Or dependendo do caso;
  • Order by é caro no sql;
  • De preferência em usar JOIN no lugar de UNION;
  • Não use  Distinct, tente utilizar Group By no lugar;
  • Análise o plano de execução estimado da consulta;
  • Utilize flags de tipo booleano ou inteiro (colunas deste tipo), o Oracle não possui este tipo, portanto, utilize o tipo numeric (0 ou 1);
  • Evite utilizar conversões com UPPER, TO_CHAR e etc em cláusulas WHERE, esta operação faz com que o banco de dados naturalmente ignore a utilização dos índices automáticos criados para estas colunas, que tornariam a consulta bem mais rápida;
  • Não utilize HAVING para filtrar dados, caso necessite filtrar dados em um agrupamento de informações, prefira sempre realizar esta operação na cláusula WHERE ao invés do HAVING, por questões de performance, a não ser que seja necessário realizar algum filtro utilizando realmente as operações de agregação;


Mais informações sobre consultas SQLs podem ser acessadas em https://tdn.totvs.com/display/LRM/Trabalhando+com+Consultas+SQL

Caso você precise de apoio para a realização dos ajustes pode procurar o time de Consultoria TOTVS através do “link”.