O SQL é muito simples de operar e eficiente para o utilizador, uma vez que os comandos têm uma sintaxe simples. Mas então, a eficiência do comando SQL está sujeita a diferentes funções do banco de dados, especificamente em termos de seu tempo de computação individual. Além disso, a eficiência da linguagem não significa que a otimização da linguagem também seria mais fácil. Cada banco de dados requer maneiras únicas de ser ajustado, de acordo com suas necessidades individuais.
É por isso que, usar o melhor banco de dados SQL é aconselhável, tanto quanto conhecer diferentes maneiras de otimizar ou impulsionar o banco de dados, de modo a garantir o melhor desempenho fora dele. O escopo da otimização do banco de dados SQL para desenvolvedores como, por exemplo, desenvolvedores Java j2ee seniores diferem do trabalho de um Administrador de Banco de Dados (DBA) em alguns aspectos e são parecidos em outros aspectos. Em grandes empresas, os desenvolvedores e DBAs são frequentemente obrigados a trabalhar em conjunto, onde, na maioria das vezes, constata-se que surge um conflito entre as duas equipes. Existem várias formas de sintonizar as bases de dados SQL.
- DESENVOLVIMENTO DE GERAÇÃO PRÓXIMA: VALUE STREAM MANAGEMENT
- COMO CRESCER A SUA EQUIPA SEM SERVIDORES
- MLOPS: ENTREGA CONTÍNUA DE SISTEMAS DE APRENDIZAGEM DE MÁQUINAS
- Indice de desempenho
- VER MAIS: As melhores bases de dados em 2017: Tendências para SQL, NoSQL, Big Data, Fast Data
- Retrie apenas os dados relevantes
- Limitar subconsultas correlacionadas
- VER MAIS: Equipa MySQL v Equipa PostgreSQL: Estas empresas estão apostando nelas
- Usando ou evitando tabelas temporárias de acordo com a exigência
- Laços de codificação ovóides
- Planos de execução
DESENVOLVIMENTO DE GERAÇÃO PRÓXIMA: VALUE STREAM MANAGEMENT
Helen Beal (Instituto DevOps.)
COMO CRESCER A SUA EQUIPA SEM SERVIDORES
Sheen Brisals (The LEGO Group)
MLOPS: ENTREGA CONTÍNUA DE SISTEMAS DE APRENDIZAGEM DE MÁQUINAS
Hauke Brammer (finpair GmbH)
Indice de desempenho
Index é basicamente uma estrutura de dados que ajuda a acelerar o processo de recuperação de dados em geral. Índice único é um tipo de indexação que cria colunas de dados separadas sem se sobreporem umas às outras. A indexação adequada garante um acesso mais rápido à base de dados. Uma indexação excessiva ou nenhuma indexação estão ambas erradas. Sem qualquer indexação, o processamento será muito lento, enquanto que a indexação de tudo tornará ineficaz a inserção e a atualização de disparos.
VER MAIS: As melhores bases de dados em 2017: Tendências para SQL, NoSQL, Big Data, Fast Data
Retrie apenas os dados relevantes
Especificar os dados necessários permite uma recuperação precisa. Usando os comandos *
e LIMIT
, ao invés de SELECT *
como e quando necessário é uma ótima maneira de sintonizar a base de dados, enquanto evita recuperar todo o conjunto de dados quando o usuário quer apenas uma determinada parte dele. É claro que não será necessário quando a quantidade de dados em geral for menor. Mas ao acessar dados de uma grande fonte, especificar as porções necessárias economizaria muito tempo essencial.
O comando *
é para uso na especificação de dados de colunas, e o comando LIMIT
é quando o usuário precisa de dados de um certo número de linhas do lote. Selecionar com moderação não é exatamente uma regra necessária. No entanto, ela ajuda a evitar erros de sistema no futuro. Além disso, limitar e especificar os dados reduz ainda mais a necessidade de otimizar a base de dados para muito.
Limitar subconsultas correlacionadas
Uma subconsulta correlacionada depende basicamente da consulta pai ou externa. Este tipo de pesquisa é feita linha a linha. Isso significa que ela diminui a velocidade geral do processo. Este problema normalmente reside no comando de WHERE
da consulta externa, aplicando o qual, a subconsulta é executada para cada linha, retornada pela consulta pai, consequentemente retardando todo o processo e reduzindo a eficiência da base de dados. Assim, uma melhor maneira de sintonizar a base de dados, neste caso, é com o comando INNER JOIN
, ao invés da subconsulta correlacionada. Mas em certos casos, o uso da subconsulta correlata é essencial.
VER MAIS: Equipa MySQL v Equipa PostgreSQL: Estas empresas estão apostando nelas
Usando ou evitando tabelas temporárias de acordo com a exigência
Se qualquer código pode ser bem escrito de uma forma simples, não há absolutamente nenhuma necessidade de torná-lo complexo com tabelas temporárias. Naturalmente, se um dado tem um procedimento específico a ser configurado que requer múltiplas consultas, o uso de tabelas temporárias em tais casos são, de fato, recomendadas. Tabelas temporárias são frequentemente alternadas por subqueries, mas é preciso ter em mente a eficiência específica que cada uma delas proporcionaria em casos separados.
Laços de codificação ovóides
Laços de codificação ovóides são muito necessários para evitar a desaceleração de toda a sequência. Isto pode ser conseguido usando os comandos únicos UPDATE
ou INSERT
com linhas individuais, e assegurando que o comando WHERE
não actualiza os dados armazenados no caso de encontrar uma correspondência de dados preexistentes.
Planos de execução
A ferramenta de plano de execução criada pelo optimizador desempenha um papel importante na afinação de bases de dados SQL. Eles também ajudam na criação de índices apropriados. Embora, sua principal função é exibir graficamente os vários métodos de recuperação de dados. Isto, por sua vez, ajuda a criar os índices necessários e a fazer os outros passos necessários para otimizar o banco de dados.
Obviamente, existem toneladas de outras maneiras de ajustar seu banco de dados SQL da maneira mais eficiente. Além disso, há grandes chances de que os passos mencionados acima, possam não ser a escolha certa para todos os bancos de dados. Cada banco de dados exigirá técnicas de otimização exclusivamente específicas para suas necessidades.