DesafioSQL – Desafio 7 (nível Intermediário)

Início Fóruns Desafios SQL – Lista de desafios DesafioSQL – Desafio 7 (nível Intermediário)

  • Este tópico está vazio.
Visualizando 0 resposta da discussão
  • Autor
    Posts
    • #1085
      ————— Sobre o Desafio 7 —————

       

      Um usuário da aplicação está reclamando que um processo de exportação de dados está demorando muito mais do que o normal e causando problemas para o bom andamento do negócio da empresa.

       

      O software que faz a exportação foi criado e pertence a uma grande e conhecida empresa fabricante de softwares (o nome da empresa começa com T e termina com S). A equipe de negócio responsável pela área afetada já entrou em contato com a fabricante, porém receberam um retorno de que o mesmo software funciona em outros clientes com bancos de dados muito maiores e não apresenta problema, a recomendação deles foi para verificar se há alguma otimização que pode ser feita no servidor de banco de dados.

       

      Como DBA, você ficou responsável por analisar esse caso.

       

      Performance do desafio antes de aplicar solução.

       

       

      Performance do desafio depois de aplicar a solução.

       

       

       

      De acordo com a informação que você recebeu, você consegue otimizar esse processo? Boa sorte e divirta-se.

       

      Obs: Qualquer semelhança com a realidade é pura coincidência.

       

      ————– Como executar o desafio ————–

      O “problema” do desafio é simulado via um aplicativo que simula as requisições mencionadas pelo usuário.

       

      Para executar o app e executar o load do desafio execute os seguintes passos:

       

      1. Clique aqui para fazer o download dos arquivos necessários para executar o desafio.
      2. Restaure o arquivo de backup (.bak) na instância SQL que será utilizada.
      3. Abrir o aplicativo DesafioSQL.exe, clicar no botão “Criar ConnectionString”, especificar a instância SQL Server a ser utilizada (Obs. só funciona com WinAuth), clicar no botão “Testar Conexão”, selecionar o banco criado no passo 1 e clicar em OK.
      4. Clicar no botão “Executar Desafio”. Nesse momento, o app irá enviar as requisições para a instância especificada para simular o problema do desafio.

       

      Opcional: Você pode ajustar os parâmetros “Threads em paralelo” e “Número de iterações por thread” pra aumentar/diminuir o load enviado pra instância SQL.

      ————– Mais info e requisitos ————–
      • O nível desse desafio é Fabiano*.
      • O arquivo de banco foi criado no SQL Server 2017, portanto você precisa de uma instância nessa versão (preferencialmente a última release disponível) e edição developer.
      • Você NÃO pode alterar (criar nem alterar) a estrutura (índices, colunas e etc) das tabelas do banco de dados e nem pode modificar a query sendo enviada pela aplicação.
      • Obviamente, qualquer alteração no código precisa garantir que o resultado continua consistente.
      • Otimizações com força bruta não serão consideradas, ou seja, não adianta adicionar mais recursos de hardware (CPU, Memória, disco e etc).
      • A solução deve necessariamente conter as seguintes informações:
        Nome do desafio. (ex. “DesafioSQL – Desafio <N>”)
        Versão e edição do SQL Server utilizada. (@@Version é sua amiga, copia e cola o resultado dela pra gente.)
        Número de CPUs disponíveis para o SQL Server (MAXDOP utilizado na instância).
        Quantidade de memória em GB disponível para o SQL Server.
        Se a execução foi utilizando uma instância local (mesma máquina rodando o App de desafio) ou remota.
      • Sua solução precisa rodar na máquina dos avaliadores, ou seja, se sua solução “não funcionar” na minha máquina ela não será considerada. Usuários que dizerem que “na minha máquina funciona” ganharão um bônus por ousadia, e serão ignorados.
      • Se você tiver algum problema ao rodar o desafio, dúvida do que pode ou não pode fazer ou questionamento você pode entrar em contato conosco via e-mail ou utilizar o fórum de discussão dos desafios.
      • Todas as soluções válidas receberão uma nota que pode variar entre 0 a 100. Não há um prazo para envio da nota, porém, prometemos fazer o melhor possível pra conseguir enviar dentro de um tempo razoável. Todas as notas serão publicadas na página de Ranking junto com o nome do usuário que enviou a nota, caso você não queira que sua nota seja publicada, você deve nos informar via e-mail.

       

      * Nota: Legenda dos níveis:

       

      ————– Critérios avaliados na solução ————–

       

      • Clique aqui pra ver quais os critérios utilizados na avaliação e definir a pontuação.

       

      ————– Dúvidas e problemas ————–

       

Visualizando 0 resposta da discussão
  • O fórum ‘Desafios SQL – Lista de desafios’ está fechado para novos tópicos e respostas.