Caches de dados em um cálculo DAX

Neste tutorial, você aprenderá sobre o que os caches de dados fazem em um cálculo DAX. Você entenderá como eles funcionam com os mecanismos de fórmula e armazenamento para fornecer respostas às suas perguntas.

Índice

O que são caches de dados?

O mecanismo de armazenamento interage com o mecanismo de fórmula na forma de um cache de dados.

Se você se lembra das postagens de blog anteriores sobre a DAX Query Structure, saberá que o mecanismo de fórmula solicita dados do mecanismo de armazenamento. Este último vai para o banco de dados, obtém diferentes tipos de dados e os retorna ao mecanismo de fórmula na forma de um cache de dados.

O mecanismo de armazenamento pode fazer cálculos e agregações simples, o que o torna mais rápido. Ele também oferece paralelismo que pode preencher vários caches de dados de uma só vez. Uma consulta do mecanismo de armazenamento pode levar tempo para gerar uma resposta. Mas se você adicionar todas as diferentes consultas do mecanismo de armazenamento, os resultados não serão os mesmos porque estão preenchendo mais de um cache de dados.

O mecanismo de fórmula, por outro lado, funciona em consultas complexas. Como é um mecanismo de encadeamento único, ele pode usar apenas um cache de dados consolidado final. Ele começa a trabalhar no cache de dados assim que todas as solicitações são preenchidas pelo mecanismo de armazenamento.

Se a solicitação do mecanismo de fórmula for exatamente igual à solicitação anterior, o cache que foi retornado anteriormente será usado novamente. O mecanismo de armazenamento é inteligente o suficiente para retornar o mesmo cache de dados se receber a mesma solicitação. Isso torna o desempenho do DAX mais rápido, pois os dados já estão armazenados em cache.

Ao executar uma medida, é importante executá-la em um cache frio; sempre evite executar suas consultas no cache quente. Um cache quente significa que o cache de dados do mecanismo de armazenamento já está formado e pronto para ser retornado.

Quais são as principais características?

Caches de dados são tabelas materializadas na memória que levam tempo e consomem RAM. Tenha sempre em mente que a materialização deve ser a mais baixa possível.

Outra característica importante é que esses caches são descompactados . Depois que sai do mecanismo de armazenamento e é enviado para o mecanismo de fórmula, o cache de dados se torna uma tabela cheia descompactada na memória. Essa execução é muito mais lenta do que uma solicitação do mecanismo de armazenamento de mesmo nível, que está toda na memória e compactada.

Não há problema em usar o mecanismo de fórmula; você só precisa fazer com que o mecanismo de armazenamento faça o trabalho o máximo possível.

Os caches de dados também são temporários. Eles existem por algum tempo e depois desaparecem. Embora sejam materializados na memória, eles não são persistentes, então serão eliminados.

Onde encontrar caches de dados?

Você pode encontrar essas informações na coluna de registros dos planos de consulta física e em temporizações do servidor do DAX Studio na coluna de linhas . Ele mostrará quantas linhas estão sendo produzidas pelo mecanismo de armazenamento e enviadas para o mecanismo de fórmula.

Se você executar certos testes nos tempos do servidor, notará que a contagem de linhas pode estar um pouco errada. Esta é apenas uma diretriz de quantas linhas você está puxando.

A principal coisa a ter em mente com os caches de dados é que o número de linhas materializadas deve ser igual ao número de linhas necessárias para a saída o mais próximo possível. Se houver uma grande diferença no número de linhas, significa que a operação de ordem está desativada.

Se a quantidade de linhas materializadas for igual à quantidade de linhas necessárias para a saída, é chamada de Late Materialization . No entanto, se o número de linhas materializadas for maior que o número de linhas necessárias, é chamado de materialização antecipada . Como esses são dados não compactados, você não deve permitir que ambos os mecanismos os materializem, pois isso diminuirá o desempenho do DAX.

Este é um exemplo de Materialização Antecipada:

Caches de dados em um cálculo DAX

No plano de consulta física, você pode ver 25 milhões de linhas sendo puxadas na coluna de registros. No entanto, a consulta de exemplo não precisa de 25 milhões de linhas de saída. Isso significa que a consulta extraiu muitas linhas do que o necessário.

Se você observar os tempos do servidor, verá a mesma quantidade de linhas sendo extraídas na coluna de linhas.

Caches de dados em um cálculo DAX

Nos visuais da CPU do SE , você verá um número se houver paralelismos em suas consultas. Como este exemplo não tem nenhum, ele mostrou 0.

Caches de dados em um cálculo DAX


O que é DAX Studio no LuckyTemplates Desktop
DAX Tutorial: contexto e mecanismo de cálculo
VertiPaq Analyzer no DAX Studio | Tutorial do LuckyTemplates

Conclusão

Um DAX de desempenho lento pode significar que sua consulta está extraindo caches desnecessários para que seus mecanismos funcionem. Os caches de dados são responsáveis ​​pela velocidade e precisão do seu DAX porque os mecanismos trabalham neles para gerar respostas para diferentes solicitações. Para obter um desempenho DAX mais rápido, você pode resolver esse problema criando adequadamente seu modelo de dados e medidas DAX.

Leave a Comment

Colunas calculadas no SharePoint | Uma visão geral

Colunas calculadas no SharePoint | Uma visão geral

Descubra a importância das colunas calculadas no SharePoint e como elas podem realizar cálculos automáticos e obtenção de dados em suas listas.

Atributos pré-atentivos: como isso pode afetar seu relatório

Atributos pré-atentivos: como isso pode afetar seu relatório

Descubra todos os atributos pré-atentivos e saiba como isso pode impactar significativamente seu relatório do LuckyTemplates

Calcular Dias de Estoque Zero – LuckyTemplates Inventory Management Insights

Calcular Dias de Estoque Zero – LuckyTemplates Inventory Management Insights

Aprenda a contar o número total de dias em que você não tinha estoque por meio dessa técnica eficaz de gerenciamento de inventário do LuckyTemplates.

Usando exibições de gerenciamento dinâmico (DMV) no DAX Studio

Usando exibições de gerenciamento dinâmico (DMV) no DAX Studio

Saiba mais sobre as exibições de gerenciamento dinâmico (DMV) no DAX Studio e como usá-las para carregar conjuntos de dados diretamente no LuckyTemplates.

Variáveis ​​e expressões dentro do editor do Power Query

Variáveis ​​e expressões dentro do editor do Power Query

Este tutorial irá discutir sobre Variáveis e Expressões dentro do Editor do Power Query, destacando a importância de variáveis M e sua sintaxe.

Como calcular a diferença em dias entre compras usando o DAX no LuckyTemplates

Como calcular a diferença em dias entre compras usando o DAX no LuckyTemplates

Aprenda a calcular a diferença em dias entre compras usando DAX no LuckyTemplates com este guia completo.

Calculando a média no LuckyTemplates: isolando os resultados do dia da semana ou do fim de semana usando o DAX

Calculando a média no LuckyTemplates: isolando os resultados do dia da semana ou do fim de semana usando o DAX

Calcular uma média no LuckyTemplates envolve técnicas DAX para obter dados precisos em relatórios de negócios.

O que é self em Python: exemplos do mundo real

O que é self em Python: exemplos do mundo real

O que é self em Python: exemplos do mundo real

Como salvar e carregar um arquivo RDS em R

Como salvar e carregar um arquivo RDS em R

Você aprenderá como salvar e carregar objetos de um arquivo .rds no R. Este blog também abordará como importar objetos do R para o LuckyTemplates.

Primeiros N dias úteis revisitados - uma solução de linguagem de codificação DAX

Primeiros N dias úteis revisitados - uma solução de linguagem de codificação DAX

Neste tutorial de linguagem de codificação DAX, aprenda como usar a função GENERATE e como alterar um título de medida dinamicamente.