Ir para conteúdo
  • 0

Consulta em SQL demorando muito no power bi


kleberfernandes

Pergunta

  • Alunos

Pessoal, bom dia!

Eu tenho uma query em SQL que, quando rodo direto no SSMS leva em torno de 1:30 minutos para atualizar.

Essa mesma query no Power BI demora mais de 10 minutos, às vezes dando até erro de Time Out.

Alguém sabe me dizer porque ela demora tanto para atualizar no Power BI, sendo que no SQL a consulta roda tão rápido?

Obrigado.

 

Link para o comentário
Compartilhar em outros sites

6 respostass a esta questão

Posts Recomendados

  • 0
  • Alunos

Então,existem várias razões pelas quais uma consulta SQL pode ser rápida no SSMS e mas lenta no Power BI. Uma das principais causas é o "query folding". O Power Query tenta converter as etapas de transformação em uma única consulta SQL para que o processamento seja feito no servidor de banco de dados, e não localmente. Se você realizar transformações no Power BI que não suportam o query folding, o Power BI pode estar trazendo grandes volumes de dados para aplicar as transformações localmente, o que aumenta o tempo de atualização. Para verificar se o query folding está ocorrendo, clique com o botão direito em cada etapa no Editor de Consultas e veja se a opção "Exibir Consulta Nativa" está disponível. Se não estiver, tente modificar ou reordenar as transformações para permitir o query folding.

Outra questão a considerar são as etapas adicionais no Power Query após a importação da consulta. Qualquer transformação adicional, como junções complexas, cálculos ou filtragens, pode adicionar sobrecarga e impactar o desempenho. É recomendável otimizar as etapas no Power Query e, sempre que possível, realizar transformações complexas diretamente na consulta SQL original.

A conectividade de rede de internet também pode influenciar no desempenho. A velocidade e a latência da rede entre o Power BI e o servidor SQL podem afetar significativamente o tempo de resposta. 



 

Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos

@kleberfernandes, você só terá velocidade equivalente ao SSMS se tiver consulta nativa (query folding) na etapa de extração dos dados.

Se você colocar o script sql direto na janela de conexão, perde a consulta nativa e o desempenho já era.

Para contornar essa situação, crie uma consulta assim no power query, usando o editor avançado
- crie uma variável para conter o script sql original (no exemplo, ScriptSQL
- coloque o script entre " "
- na Fonte, Query = variável que contém o script, no caso ScriptSQL

Pronto, vc tem um script sql com consulta nativa !

Lógico, você vai ter diferença mesmo se estiver trabalhando com volume significativo de dados
e uma complexidade grande de script.
Na minha realidade, faz muito sentido acima das 150,000 linhas.

Numa situação real minha, essa  construção é a diferença entre 55 segundos e 1minuto e 27 segundos de carga,
em uma única consulta.

image.png.c8eacd7d53aaad942187f80dce6d02eb.png

 

Agora, se tiver muitas transformações no Power Query, vai continuar degradando o desempenho.


 

Editado por Henrique Merola Faria
Complementando informação
Link para o comentário
Compartilhar em outros sites

Faça login para comentar

Você vai ser capaz de deixar um comentário após fazer o login



Entrar Agora
×
×
  • Criar Novo...