Desafio: Otimização de Consultas
Vamos analisar duas tabelas: BankAccounts e uma tabela adicional chamada Transactions.
Tabela BankAccounts
Tabela Transactions
Suponha que desejamos recuperar apenas os números de conta que realizaram pelo menos uma transação.
Nesta tarefa, temos uma consulta que não está otimizada. Sua tarefa é reescrevê-la de forma mais eficiente.
Aqui está uma lista das principais técnicas de reescrita de consultas para melhorar a otimização:
-
Especificar Colunas Explicitamente: Em vez de usar o caractere curinga (
*), mencione explicitamente os nomes das colunas nas consultas para obter melhor desempenho, legibilidade e facilidade de manutenção; -
Minimizar Subconsultas: Reduza o uso de subconsultas para otimizar o desempenho da consulta. Considere alternativas como joins ou tabelas derivadas para evitar complexidade e sobrecarga;
-
Evitar Operadores IN Repetidos: Limite o uso do operador
INnas consultas para evitar impacto no desempenho. Em vez disso, considere utilizar cláusulasJOINouEXISTSpara planos de execução mais eficientes; -
Organizar Joins de Forma Lógica: Inicie os joins SQL com a tabela principal e depois faça join com as tabelas relacionadas para otimizar a organização da consulta e o desempenho do mecanismo de banco de dados;
-
Utilizar Condições WHERE Restritivas: Melhore o desempenho da consulta incluindo condições restritivas na cláusula
WHEREpara filtrar linhas e aumentar a velocidade de execução; -
Refatorar Código em Stored Procedures ou Funções: Encapsule segmentos de código repetitivos em stored procedures ou funções definidas pelo usuário para reutilização, modularidade e manutenção facilitada. Isso pode reduzir redundância e otimizar consultas SQL.
Swipe to start coding
Reescreva a consulta de forma mais otimizada. Observe que é necessário obter apenas os números das contas que realizaram pelo menos uma transação (transferiram dinheiro para outra conta), ordenados em ordem crescente.
Nota
Utilize o tipo de junção
LEFTouINNERpara completar esta tarefa.
Solução
Obrigado pelo seu feedback!
single
Pergunte à IA
Pergunte à IA
Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo
Can you show me the unoptimized query?
What would an optimized query look like for this task?
Can you explain why the optimized query is better?
Awesome!
Completion rate improved to 4.35
Desafio: Otimização de Consultas
Deslize para mostrar o menu
Vamos analisar duas tabelas: BankAccounts e uma tabela adicional chamada Transactions.
Tabela BankAccounts
Tabela Transactions
Suponha que desejamos recuperar apenas os números de conta que realizaram pelo menos uma transação.
Nesta tarefa, temos uma consulta que não está otimizada. Sua tarefa é reescrevê-la de forma mais eficiente.
Aqui está uma lista das principais técnicas de reescrita de consultas para melhorar a otimização:
-
Especificar Colunas Explicitamente: Em vez de usar o caractere curinga (
*), mencione explicitamente os nomes das colunas nas consultas para obter melhor desempenho, legibilidade e facilidade de manutenção; -
Minimizar Subconsultas: Reduza o uso de subconsultas para otimizar o desempenho da consulta. Considere alternativas como joins ou tabelas derivadas para evitar complexidade e sobrecarga;
-
Evitar Operadores IN Repetidos: Limite o uso do operador
INnas consultas para evitar impacto no desempenho. Em vez disso, considere utilizar cláusulasJOINouEXISTSpara planos de execução mais eficientes; -
Organizar Joins de Forma Lógica: Inicie os joins SQL com a tabela principal e depois faça join com as tabelas relacionadas para otimizar a organização da consulta e o desempenho do mecanismo de banco de dados;
-
Utilizar Condições WHERE Restritivas: Melhore o desempenho da consulta incluindo condições restritivas na cláusula
WHEREpara filtrar linhas e aumentar a velocidade de execução; -
Refatorar Código em Stored Procedures ou Funções: Encapsule segmentos de código repetitivos em stored procedures ou funções definidas pelo usuário para reutilização, modularidade e manutenção facilitada. Isso pode reduzir redundância e otimizar consultas SQL.
Swipe to start coding
Reescreva a consulta de forma mais otimizada. Observe que é necessário obter apenas os números das contas que realizaram pelo menos uma transação (transferiram dinheiro para outra conta), ordenados em ordem crescente.
Nota
Utilize o tipo de junção
LEFTouINNERpara completar esta tarefa.
Solução
Obrigado pelo seu feedback!
single