quinta-feira, 13 de fevereiro de 2020

Principais Razões para uma Péssima Performance no SQL


Esses são os principais pontos que devem ser observados quando da construção de uma base de dados, porque alguns erros podem simplesmente transformar a performance numa verdadeira carroça, e acelerar uma carroça pode até funcionar, mas nãos será por muito tempo que ela vai aguentar o tranco. Vamos ver algumas ações que devemos evitar para garantir um bom desempenho de nossa base de dados.


#1: Desenho de Estrutura Ruim

Boa parte do sucesso de uma aplicação se sustenta nos dados que serão providos e nas velocidades em que eles estarão disponíveis. Por isso é importantíssimo a excelente na construção de uma estrutura do banco de dados, porque ela será a espinha dorsal para tudo que for construído em volta, listamos alguns erros que devem ser evitados para garantir um desenho funcional.

Normalização Baixa
Redundância de informações no banco de dados
Baixa integridade de referência entre tabelas (chaves primárias e estrangeiras)
Chaves primárias complexas demais (muitos campos)
Falta de teste de stress no desenho (cenários de crescimento dos dados)
     

#2: Queries e Códigos Ineficientes

Se você tem uma base sólida e bem construída, agora chegou a parte de criar as principais estruturas que transportaram e transformarão os dados, essas partes são muito importantes, porque será através delas que os dados serão coletados e entregues nas pontas, esses erros devem ser evitados:

Utilizar [NOT IN] ou [IN] em vez de [NOT EXISTS] ou [EXISTS]
Usar cursores ou loop fakes em vez de [INSERT… SELECT] ou [SELECT… INTO TABLE]
Usar [SELECT *] em vez de apenas os nomes de coluna necessários
Esquecendo de usar parênteses ao usar operadores lógicos [OR] ou [AND]
Alinhamento de subconsultas criando um plano de execução complexo
Usando funções na coluna indexada na cláusula [WHERE]
Uso excessivo de funções escalares definidas pelo usuário
Uso desnecessário de [DISTINCT] em qualquer lugar
SQL dinâmico

#3: Estratégia de Indicies Pobre

Os índices podem ser considerados aceleradores de um banco de dados, porém a criação, definição e utilização deve ser estudada e mensurada para que eles possam oferecer ganhos, porque indicies mal dimensionados à revelia podem acabar tendo um efeito contrário, por isso esses erros devem ser evitados:

Indexar todas chaves estrangeiras
Indexar todas as colunas de uma tabela
Muitos índices para uma simples coluna
Preferir tabelas sem índice clusterizado
Subindexiar suas tabelas
Não efetuar manutenção dos índices      

#4: Baixo Provisionamento de Equipamento

Mesmo que você utilize todas as boas práticas para a construção do seu banco de dados, nada disso surtirá efeito caso você não tenha recursos suficientes para as estruturas sejam utilizadas com uma folga no servidor, ou seja, é importante a metrificação do tamanho do equipamento ou instância que rodará o banco de dados, entre as principais métricas CPU, Memória, Espaço em Disco. Os erros listados devem ser evitados a qualquer custo:

CPU funcionando mais de 90% constantemente
95% da memória sendo utilizadas
Leitura e escrita (I/O) em disco muito alta

#Conhecimento

A palavra chave para criação de um banco de dados performático é conhecimento.

Um profissional de TI, deve continuar aprendendo e se desenvolvendo para ficar à frente de todos os novos desafios futuros, e através dessas informações poderá aplicar mais práticas relevantes para melhorar a qualidade final de seu trabalho.

A cada novo dia, novas ferramentas, metodologias e ferramentas são criadas, sendo disponibilizadas para auxiliar na criação de melhores soluções.

Mantenha-se atualizado sempre.

Marcelo Goberto de Azevedo
Arquiteto na GFT Brasil
https://marcelogoberto.blogspot.com/