image

Acesse bootcamps ilimitados e +650 cursos

50
%OFF
Article image
Júlio Droszczak
Júlio Droszczak25/09/2024 12:09
Compartilhe

Otimizando Consultas no DAX e Power Query 🚀

  • #Power BI

💡Dicas riquíssimas para quem esta com problemas de performance nas transformações do PowerQuery 🚀

LinkedIn: Júlio César Droszczak 😉

Filtros complexos podem tornar suas consultas mais lentas em DAX e Power Query. Para otimizar sua performance, substituímos condições OR por formas mais eficientes de comparação. Vou te mostrar como! 😉

 

DAX: Substituindo OR por IN

No DAX, uma prática comum para acelerar a performance é trocar as múltiplas comparações OR por IN. Isso torna o código mais limpo e rápido.

 

🔴 Consulta com OR:

CALCULATETABLE(
  'Tabela',
  'Tabela'[coluna] = "A" || 'Tabela'[coluna] = "B" || 'Tabela'[coluna] = "C"
)

 

🟢 Consulta otimizada com IN:

CALCULATETABLE(
  'Tabela',
  'Tabela'[coluna] IN {"A", "B", "C"}
)

🔍 Por que usar IN?

Essa função evita que o engine precise avaliar cada condição separadamente, melhorando a eficiência da consulta.

 

Power Query: Usando List.Contains e Table.Buffer

No Power Query, você pode substituir múltiplas condições OR por List.Contains. Além disso, Table.Buffer e List.Buffer podem ser usados para armazenar dados em memória e evitar recalcular a tabela.

 

🔴 Consulta com OR:

Table.SelectRows(Tabela, each [coluna] = "A" or [coluna] = "B" or [coluna] = "C")

 

🟢 Consulta otimizada com List.Contains e Table.Buffer:

let
  ListaValores = List.Buffer({"A", "B", "C"}),
  TabelaComBuffer = Table.Buffer(Tabela),
  Resultado = Table.SelectRows(TabelaComBuffer, each List.Contains(ListaValores, [coluna]))
in
  Resultado

 

🔍 Por que usar Buffer?

Quando trabalhamos com grandes conjuntos de dados, usar Table.Buffer evita recalcular tabelas a cada nova operação, melhorando a performance geral do processo.

Compartilhe
Comentários (0)