Ajuste de desempenho do SQL

Dec 19 2022
O ajuste de desempenho SQL é um processo de otimização de consultas SQL para garantir que sejam executadas o mais rápido possível. Existem muitos fatores que afetam o desempenho das consultas SQL, como o número de tabelas consultadas, o tamanho e o número de colunas nas tabelas e os índices nas tabelas.

O ajuste de desempenho SQL é um processo de otimização de consultas SQL para garantir que sejam executadas o mais rápido possível. Existem muitos fatores que afetam o desempenho das consultas SQL, como o número de tabelas consultadas, o tamanho e o número de colunas nas tabelas e os índices nas tabelas.

O SQL é um componente crítico de muitos sistemas de banco de dados e é uma linguagem bem conhecida para consultar, atualizar e gerenciar dados.
O ajuste de desempenho do SQL é um tópico importante para dominar, pois pode ajudar na escalabilidade e na velocidade das consultas.
Nesta seção, abordaremos diferentes maneiras de ajuste de SQL.

Todos nós sempre queremos uma resposta rápida no processo de recuperação de dados. Portanto, precisamos projetar um bom banco de dados que forneça o melhor desempenho durante a manipulação de dados, o que resulta no melhor desempenho de um aplicativo.

No entanto, não há uma maneira direta de definir o melhor desempenho, mas podemos escolher várias maneiras de melhorar o desempenho da consulta SQL, que se enquadra em várias categorias, como criação de índices, uso de junções e reescrever uma subconsulta para usar JOIN, etc.

Como desenvolvedor, sabemos que qualquer consulta SQL pode ser escrita de várias maneiras, mas devemos seguir as práticas/técnicas recomendadas para obter um melhor desempenho da consulta. Algumas delas são destacadas a seguir:

  1. Use EXISTS em vez de IN para verificar a existência de dados.
    2. Evite * na instrução SELECT. Dê o nome das colunas que você precisa.
    3. Escolha o tipo de dados apropriado. Por exemplo, para armazenar strings, use varchar no lugar do tipo de dados de texto. Use o tipo de dados de texto sempre que precisar armazenar dados grandes (mais de 8.000 caracteres).
    4. Evite nchar e nvarchar, se possível, pois ambos os tipos de dados ocupam apenas o dobro da memória de char e varchar.
    5. Evite NULL no campo de comprimento fixo. No caso de requisito de NULL, use o campo de tamanho variável (varchar) que ocupa menos espaço para NULL.
    6. Evite ter cláusula. Ter cláusula é necessária se você deseja filtrar ainda mais o resultado de uma agregação.
    7. Crie índices agrupados e não agrupados.
    8. Mantenha o índice clusterizado pequeno, pois os campos usados ​​no índice clusterizado também podem ser usados ​​no índice não clusterizado.
    9. A maioria das colunas seletivas deve ser colocada mais à esquerda na chave de um índice não agrupado.
    10. Elimine índices não utilizados.
    11. Melhor criar índices em colunas que tenham valores inteiros em vez de caracteres. Valores inteiros usam menos sobrecarga do que valores de caractere.
    12. Use junções em vez de subconsultas.
    13. Use expressões WHERE para limitar o tamanho das tabelas de resultados que são criadas com uniões.
    14. Use TABLOCKX ao inserir em uma tabela e TABLOCK ao mesclar.
    15. Use WITH (NOLOCK) ao consultar os dados de qualquer tabela.
    16. Use SET NOCOUNT ON e TRY-CATCH para evitar a condição de deadlock.
    17. Evite cursores, pois o desempenho dos cursores é muito lento.
    18. Use a variável Table no lugar da tabela Temp. O uso de tabelas temporárias exigia interação com o banco de dados TempDb, que é uma tarefa demorada.
    19. Use UNION ALL no lugar de UNION, se possível.
    20. Use o nome do esquema antes do nome dos objetos SQL.
    21. Use Stored Procedure para dados usados ​​com frequência e consultas mais complexas.
    22. Mantenha a transação o menor possível, pois a transação bloqueia os dados das tabelas de processamento e pode resultar em deadlocks.
    23. Evite o prefixo “sp_” com o nome do procedimento armazenado definido pelo usuário porque o SQL Server primeiro pesquisa o procedimento definido pelo usuário no banco de dados mestre e depois no banco de dados da sessão atual.
    24. Evite o uso de subconsulta escalar não correlacionada. Use esta consulta como uma consulta separada em vez de parte da consulta principal e armazene a saída em uma variável, que pode ser referida na consulta principal ou na parte posterior do lote.
    25. Evite funções com valor de tabela (TVFs) com várias instruções. Os TVFs com várias instruções são mais caros do que os TVFs inline.

    Como vimos acima, no SQL Server, existem várias etapas que você pode seguir para melhorar o desempenho de suas consultas e do banco de dados como um todo. Existem muitas etapas que serão aplicáveis ​​a outros RDBMS, bem como ao ORACLE.
  1. Use EXPLAIN PLAN ou AUTOTRACE para analisar o plano de execução de suas consultas e identificar eventuais problemas com a forma como estão sendo executadas.
  2. Use a dica INDEX para especificar qual índice deve ser usado pelo otimizador para uma consulta específica.
  3. Considere o uso de dicas como FULL ou INDEX_FFS para forçar o otimizador a usar uma verificação completa da tabela ou uma verificação completa rápida do índice, respectivamente.
  4. Use a dica OPTIMIZER_MODE para especificar um modo de otimização específico para uma consulta.
  5. Considere o uso de exibições materializadas para pré-calcular e armazenar dados acessados ​​com frequência, o que pode melhorar o desempenho de consultas que acessam esses dados.
  6. Use o pacote DBMS_STATS para analisar e coletar estatísticas sobre seu banco de dados e seus objetos, o que pode ajudar o otimizador a tomar decisões mais informadas ao criar planos de execução.
  7. Considere usar o particionamento para dividir tabelas grandes em partes menores e mais gerenciáveis, o que pode melhorar o desempenho das consultas que acessam essas tabelas.
  8. Use o SQL Tuning Advisor para identificar e corrigir possíveis problemas de desempenho com suas instruções SQL.
  9. Estas são apenas algumas das muitas técnicas que você pode usar para melhorar o desempenho de suas consultas e banco de dados Oracle SQL. É importante ter em mente que as etapas específicas que você precisará seguir dependerão de seu banco de dados e carga de trabalho específicos.
  10. É sempre uma boa ideia consultar um administrador de banco de dados ou outros especialistas se estiver tendo problemas de desempenho.

Muitas maneiras de aprender o GCP gratuitamente com o Google Cloud durante as férias

Entendendo --

Comandos Linux para Cloud Learning

Boa leitura…..Bom aprendizado!