Dicas SQL Server

7 Dicas Para Aumentar o Desempenho de Consultas do SQL Server

7 Dicas Para Aumentar o Desempenho de Consultas do SQL Server

Os desenvolvedores não prestam tanta atenção quanto deveriam ao ajuste de consulta SQL ao reduzir os tempos de resposta para aplicativos web. Aqui estão algumas dicas de como aumentar o desempenho de consultas SQL.

Quando vejo otimizações de desempenho para reduzir os tempos de resposta para aplicativos Web, as alterações geralmente são feitas na camada do aplicativo ou verificando a existência do índice nas colunas da tabela do banco de dados.

Mesmo arquitetos e desenvolvedores especialistas tendem a esquecer que entender como os bancos de dados funcionam internamente e escrever consultas SQL melhores é muito importante para obter um melhor desempenho.

Aqui estão sete dicas simples que aumentarão o desempenho de suas consultas SQL.

1. Proprietário (dbo. ou outro schema)

Prefixe sempre os nomes dos objetos (por exemplo, nome da tabela, nome do procedimento armazenado, etc.) com seu nome de proprietário.

Pois se o nome do proprietário não for fornecido, o mecanismo do SQL Server tentará localizá-lo em todos os esquemas até que o objeto o encontre. Assim, o mecanismo do SQL Server não pesquisará a tabela fora de seu proprietário se o nome do proprietário for fornecido.

2. O Operador *

Não use o  *  operador em suas SELECT declarações. Em vez disso, use nomes de colunas.

Já que o SQL Server verifica todos os nomes de coluna e substitui o * com todos os nomes de coluna da (s) tabela (s) na SELECT instrução SQL. Assim, fornecer nomes de coluna evita essa pesquisa e substituição e melhora o desempenho.

3. Colunas NULL

Não use NOT IN ao comparar com colunas NULL. Use NOT EXISTS em vez disso.

Pois quando NOT IN é usado na consulta (mesmo se a consulta não retornar linhas com valores nulos), o SQL Server verificará cada resultado para ver se é nulo ou não. Portanto, usando NOT EXISTS não fará a comparação com nulos.

4. Tabela de Variáveis ​​e Joins

Não use variáveis ​​de tabela em joins. Use tabelas temporárias, CTEs (Common Table Expressions) ou tabelas derivadas em junções.

Motivo: Embora as variáveis ​​de tabela sejam muito rápidas e eficientes em muitas situações, o mecanismo do SQL Server a vê como uma única linha.

Sendo assim, eles executam mal quando usados ​​em junções. CTEs e tabelas derivadas tem melhor desempenho com junções em comparação com variáveis ​​de tabela.

5. Nomes das procedures

Não comece o nome das suas procedures com sp_.

Já que, quando a procedure é nomeado  sp_ ou  SP_, o SQL Server sempre verifica no banco de dados do sistema/mestre, mesmo se o nome do proprietário/esquema é fornecido.

Fornecer um nome sem SP_  a um procedimento armazenado evita essa verificação desnecessária no banco de dados do sistema/mestre no SQL Server.

6. Use SET NOCOUNT ON

Use  SET NOCOUNT ON com operações DML.

Motivo: Ao executar operações DML (ou seja INSERT,  DELETE,  SELECT, e  UPDATE), SQL Server sempre retorna o número de linhas afetadas.

Em consultas complexas com muitas associações, isso se torna um grande problema de desempenho. Usar SET NOCOUNT ON irá melhorar o desempenho porque não contará o número de linhas afetadas.

7. Evite um usar GROUP BY, ORDER BY e DISTINCT

Evite usar GROUP BY,  ORDER BYDISTINCT tanto quanto possível.

Pois ao usar GROUP BY,  ORDER BYou  DISTINCT, o mecanismo do SQL Server cria uma tabela de trabalho e coloca os dados na tabela de trabalho.

Sendo assim, ele organiza esses dados na tabela de trabalho, conforme solicitado pela consulta, e retorna o resultado final.

Use GROUP BY,  ORDER BYou  DISTINCT na sua consulta somente quando for absolutamente necessário.

Conclusão

Aplicativos complexos e grandes geralmente criam requisitos complexos. Isso nos leva a escrever consultas SQL complexas. Essas simples alterações nas consultas do SQL Server farão uma enorme diferença nos tempos de resposta.

Por fim, obrigado por ler o meu artigo. Espero que tenha sido útil!

7 Dicas Para Aumentar o Desempenho de Consultas do SQL Server
The following two tabs change content below.

Wesley Mota

DBA SQL Server
Profissional graduado em Banco de Dados e Sistemas de Informação com mais de 7 anos de experiência em empresas de software. Certificado MCSA Microsoft SQL Server possui intensa vivência em administração de banco de dados, Tunning, Performance SQL Server, levantamento de melhorias e monitoramento de banco de dados e servidores SQL Server. Consultoria SQL Server em diversos clientes no Brasil e ao redor do mundo. Escritor no blog dbasqlserverbr.com.br/blog. Onde compartilha conhecimento, experiências e dicas de performance para DBAs SQL Server. Conhecimentos em Oracle e ambientes de alta disponibilidade. Desenvolvimento de softwares web e mobile.Gerenciamento de equipe e projetos.

Latest posts by Wesley Mota (see all)