Baixe o app para aproveitar ainda mais
Prévia do material em texto
Desafio O banco de dados de sua empresa apresenta lentidão no seu desempenho. Você é analista e responsável por melhorar a performance do acesso e das consultas. Observe as informações: Tabela Vendas Produto Valor Vendedor Data TV LED Smart 43” 2.350,00 João 2017-03-20 Refrigerante 350L 1.670,00 Maria 2017-03-18 Celular 5.5” QuadCore 960,00 Pedro 2017-03-18 Máquina Lava/seca roupas 2.330,00 João 2017-03-15 MacBook Air 13.3” 6.450,00 Maria 2017-03-12 Home Theater Bluetooth 7.1 850,00 Pedro 2017-03-10 Modelagem Produto Text Valor Double Vendedor Text Data Timestamp Consulta das 3 maiores vendas SELECT*FROM Vendas ORDER BY Valor DESC Baseado nas tabelas, identifique os erros e mostre como você faria a otimização da modelagem da tabela, tipagem dos dados e das consultas. Apresente os dados da tabela e o código SQL da consulta. Justifique as suas escolhas. Sua resposta id Integer(int) Produto VarChar Valor decimal(10,2) Vendedor VarChar Data Timestamp Em relação aos campos da tabela: 1. Foi inserido o campo id no qual deve ser uma chave primária. Para aumentar o rendimento e uma futura busca nessa tabela. 2. Segundo pesquisa o Varchar ( tipo) no caso do Produto aceita até 8000 caracteres aprox. 3. O Valor pode ser Decimal com a devida formatação. 4. O Vendedor é VarChar não é uma string longa. Para a CONSULTA EM SQL: SELECT id, Produto, Valor, Vendedor, Data FROM Vendas ORDER BY Valor DESC Se for o caso usar uma mascara para a visualização da data. Enviado em: 17/10/2021 20:46 Padrão de resposta esperado Foram encontrados vários erros que prejudicam a performance do servidor de banco de dados: - A Tabela de Vendas não apresenta a coluna ID_Vendas para indexação da tabela. - A Modelagem apresenta erros na tipagem dos dados de todas as colunas. - Produto → Deve ser usada a tipagem VarChar(100), ao invés de Text (por ser uma informação muito curta). - Valor → Deve ser usada a tipagem Float, ao invés de Double (porque ocupa metade da memória). - Vendedor → Deve ser usada a tipagem VarChar(20), ao invés de Text (por ser uma informação muito curta). - Data → Deve ser usada a tipagem Date, ao invés de Timestamp (por ocupar menos memória). Quanto à consulta, ela também apresenta lentidão no tempo de resposta, já que todas as colunas e todos os registros são selecionados. No caso de milhões de registros, o sistema ficaria extremamente lento, já que o objetivo é apenas as 3 maiores vendas. O SQL Código ideal para consulta seria assim: SELECT ID_vendas, Produto, Valor, Vendedor, Data FROM Vendas ORDER BY Valor LIMIT 3.
Compartilhar