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 pelos desenvolvedores que estão começando no Power BI Desktop, mas são eficazes e você deve usá-las por padrão ao criar medidas.
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 para ler e, portanto, para solucionar problemas. Se você usar variáveis, 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 no seu modelo semântico fornece as seguintes vantagens:
Desempenho aprimorado – as variáveis podem tornar as medidas mais eficientes, pois eliminam a necessidade de o Power BI avaliar 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 com muitas palavras. Talvez você ache mais fácil 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 DAX EARLIER ou EARLIEST, que são difíceis de entender. Essas funções eram necessárias antes da introdução 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 escrever menos fórmulas complexas.
Usar variáveis para aprimorar o desempenho
Para ilustrar como você pode 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 do 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 do "mesmo período do ano passado" a essa nova variável. Em seguida, ela usa a variável duas vezes na expressã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 na tabela, a fórmula é ineficiente porque exige que o Power BI avalie a mesma expressão duas vezes. A segunda definição é mais eficiente porque, devido à variável, o Power BI só precisa avaliar a expressã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 total de processamento da consulta pela metade e aprimorar 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á lidando com percentuais e calculando os totais.
Usar variáveis para aprimorar a legibilidade
Além de aprimorar o desempenho, você pode observar que o uso de variáveis facilita a leitura do código.
Ao usar variáveis, é uma melhor prática usar nomes descritivos para elas. No exemplo anterior, a variável se chama SalesPriorYear, que indica claramente o que ela está calculando. Considere o resultado de usar uma variável chamada X, temp ou variable1; a finalidade dela não seria clara.
Usar nomes claros, concisos e significativos ajuda a facilitar a compreensão do que você está tentando calcular, além de simplificar para outros desenvolvedores manterem o relatório no futuro.
Usar variáveis para solucionar problemas com várias etapas
Você pode usar variáveis para ajudar a depurar uma fórmula e identificar qual é o problema. As variáveis ajudam a simplificar a tarefa de solucionar problemas com o cálculo de DAX, avaliando cada variável separadamente e chamando-a novamente após a expressão RETURN.
No exemplo a seguir, você testa uma expressão atribuída a uma variável. Para depurar, você reescreve temporariamente a expressão RETURN para gerar a variável. A definição de medida retorna apenas a variável SalesPriorYear porque isso é o que vem após a expressão RETURN.
Sales YoY Growth % =
VAR SalesPriorYear = CALCULATE([Sales], PARALLELPERIOD('Date'[Date], -12, MONTH))
VAR SalesPriorYear% = DIVIDE(([Sales] - SalesPriorYear), SalesPriorYear)
RETURN SalesPriorYear%
A expressão RETURN exibirá somente o valor 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.