You are currently viewing Query Folding um aumento de performance para o Power Query

Query Folding um aumento de performance para o Power Query

Após ler o capítulo de conexões do livro Exam Ref 70–779 Analyzing and Visualizing Data by Using Microsoft Excel foi apresentado o conceito de Query Folding do Power Query.

O Power Query utiliza esse conceito para aumentar a sua performance no tratamento dos dados quando é conectado em um Banco de Dados SQL, pois ele traduz os steps criados através da linguagem M para linguagem SQL e manda esse SQL para o banco de dados processar e já retornar as informações compiladas, assim transferindo esse processamento para o banco de dados.

Após abrir o editor de consultas (Power Query) em um relatório que se conecta ao SQL Server vamos clicar com botão direito encima de um Step e após irá aparecer a opção de exibir a consulta nativa.

Image for post

Após exibir a consulta nativa temos o código SQL que o Power Query está mandando para o Banco de dados.

Image for post

Agora vamos visualizar a execução desse SQL no Banco de Dados

O primeiro passo é abrir o SQL Profiler (Nesse exemplo estou usando SQL Server, cada SGBD terá um sistema de Trace diferente)

Image for post

Após iniciar o Sql Profiler vamos criar um new trace

Image for post

Depois iremos conectar a mesma instância de banco de dados que se conectamos no nosso relatório

Image for post

Após colocar o servidor e as credenciais irá aparecer essa tela para configurar as propriedades do nosso trace, vamos apenas clicar em Run.

Image for post

Após iniciar o trace, vamos adicionar um novo step onde eu irei selecionar apenas as colunas PromotionKey, PromotionAlternateKey e EnglishPromotionName, após selecionar as colunas vou clicar em remover outras colunas.

Image for post

Após criar esse step vamos visualizar nosso trace no SQL Profiler

Image for post

Percebam que o power query mandou para o banco de dados um SELECT selecionando apenas as três colunas que nós mantemos na consulta

Image for post

Com isso conseguimos visualizar essa query sendo executada no SQL Server e como o Power Query utiliza esse conceito para acelerar o tratamento de dados quando conectado em um banco de dados.

Referências

https://exceleratorbi.com.au/how-query-folding-works/

https://powerbi.microsoft.com/pt-br/blog/incremental-refresh-query-folding/

https://www.mssqltips.com/sqlservertip/3635/query-folding-in-power-query-to-improve-performance/

https://community.powerbi.com/t5/Desktop/Join-Types-not-supported-by-Query-Folding/td-p/482262

Deixe um comentário