Usar variáveis para aprimorar o desempenho e solucionar problemas
Você pode usar variáveis em suas fórmulas DAX para escrever cálculos menos complexos e mais eficientes. As variáveis são subutilizadas por desenvolvedores que são iniciantes no Power BI Desktop, porém, são eficazes e você deve usá-las sempre que possível.
Algumas expressões envolvem o uso de muitas funções aninhadas e a reutilização da lógica da expressão. Essas expressões levam mais tempo para serem processadas e são difíceis de ler e, portanto, para solucionar problemas. Usando variáveis, você poderá economizar tempo no processamento da consulta. Essa mudança é um passo na direção certa para otimizar o desempenho de um modelo semântico.
O uso de variáveis em seu modelo semântico fornece as seguintes vantagens:
- Melhor desempenho: as variáveis podem tornar as medidas mais eficientes, pois com elas, não há necessidade de que o Power BI avalie a mesma expressão várias vezes. Você pode obter os mesmos resultados em uma consulta em cerca de metade do tempo de processamento original.
- Legibilidade aprimorada: as variáveis, que têm nomes curtos e autodescritivos, são usadas no lugar de expressões ambíguas e compostas por várias palavras. Talvez seja mais ler e entender as fórmulas quando as variáveis são usadas.
- Depuração simplificada: você pode usar variáveis para depurar uma fórmula e testar expressões, o que pode ser útil durante a solução de problemas.
-
Complexidade reduzida: as variáveis não exigem o uso das funções
EARLIERouEARLIEST, que são difíceis de entender. Essas funções eram necessárias antes do surgimento das variáveis e foram escritas em expressões complexas que introduziam novos contextos de filtro. Agora que você pode usar variáveis em vez dessas funções, é possível escreve fórmulas menos complexas.
Usar variáveis para aprimorar o desempenho
Para ilustrar como é possível usar uma variável para tornar uma medida mais eficiente, a tabela a seguir exibe uma definição de medida de duas maneiras diferentes. Observe que a fórmula repete a expressão que calcula "o mesmo período no ano passado", mas de duas maneiras diferentes: a primeira instância usa o método normal de cálculo DAX e a segunda usa variáveis no cálculo.
A segunda linha da tabela mostra a definição de medida aprimorada. Essa definição usa a palavra-chave VAR para introduzir uma variável chamada SalesPriorYear e usa uma expressão para atribuir o resultado "mesmo período do ano passado" a essa nova variável. Em seguida, ela usa a variável duas vezes na função DIVIDE.
Sem variável
Sales YoY Growth =
DIVIDE(
([Sales] - CALCULATE([Sales], PARALLELPERIOD('Date'[Date], -12, MONTH))),
CALCULATE([Sales], PARALLELPERIOD('Date'[Date], -12, MONTH))
)
Com variável
Sales YoY Growth =
VAR SalesPriorYear =
CALCULATE([Sales], PARALLELPERIOD('Date'[Date], -12, MONTH))
VAR SalesVariance =
DIVIDE(([Sales] - SalesPriorYear), SalesPriorYear)
RETURN
SalesVariance
Na primeira definição de medida, a fórmula é ineficiente, pois exige que o Power BI avalie a mesma expressão duas vezes. A segunda definição é mais eficiente porque, graças à variável, o Power BI só precisa avaliar a função PARALLELPERIOD uma vez.
Se o seu modelo semântico tiver várias consultas com várias medidas, o uso de variáveis poderá reduzir o tempo geral de processamento de consultas pela metade e melhorar o desempenho geral do modelo semântico. Além disso, essa solução é simples: imagine a economia conforme as fórmulas ficam mais complicadas, por exemplo, quando você está trabalhando com percentuais e calculando os totais.
Usar variáveis para aprimorar a legibilidade
Além do desempenho aprimorado, você pode notar como o uso de variáveis torna mais fácil a leitura do seu código.
Ao usar variáveis, é uma prática recomendada usar nomes descritivos para elas. No exemplo anterior, a variável é denominada SalesPriorYear, o que indica claramente o que a variável está calculando. Considere o resultado de usar uma variável que foi denominada X, temp ou variable1, o objetivo da variável não ficaria claro.
Usar nomes claros, concisos e significativos facilita o entendimento e a documentação do que você está calculando, além de simplificar a manutenção por outros desenvolvedores no futuro.
Usar variáveis para solucionar problemas com várias etapas
Você pode usar variáveis para ajudar na depuração de uma fórmula e na identificação do problema. As variáveis ajudam a simplificar a tarefa de solução de problemas do cálculo DAX avaliando cada variável separadamente e chamando-as na cláusula RETURN.
No exemplo a seguir, você testa uma expressão atribuída a uma variável. Para depurar, reescreva temporariamente a cláusula RETURN para retornar a variável. A definição de medida retorna apenas a variável SalesPriorYear porque é isso que vem depois da expressão RETURN.
Sales YoY Growth % =
VAR SalesPriorYear = CALCULATE([Sales], PARALLELPERIOD('Date'[Date], -12, MONTH))
VAR SalesPriorYear% = DIVIDE(([Sales] - SalesPriorYear), SalesPriorYear)
RETURN SalesPriorYear%
A cláusula RETURN retorna apenas a variável SalesPriorYear%. Essa técnica permite reverter a expressão após a conclusão da depuração. Ela também simplifica a compreensão dos cálculos devido à redução na complexidade do código DAX.