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.
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.
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.
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.
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.
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.
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.
Evite usar GROUP BY, ORDER BYe DISTINCT 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.
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!
Как казино Пинко мотивирует игроков с помощью бонусов?Казино Пинко активно использует бонусы как мощный инструмент…
Обзор популярных игр в казино Pin Up KZ на тенге для РККазино Pin Up KZ…
Пин Ап официальный: все способы игры и развлечений онлайн 2023Пин Ап официальный сайт предлагает разнообразные…
Советы по Ответственному Игрокому Поведению на 1win BetОтветственное отношение к азартным играм является ключевым аспектом…
Content⃣ Kann ich im Casino mit PaysafeCard schon ab 5 oder 10 Euro einzahlen?There are…
Лучшие бонусы: какие игры есть в казино Мостбет для новых игроков?Казино Мостбет привлекает новых игроков…