Analisar o desempenho de medidas, relacionamentos e visuais

Concluído

Se o modelo semântico tiver várias tabelas, relacionamentos complexos, cálculos complexos, vários visuais ou dados redundantes, existe um potencial para um desempenho insatisfatório do relatório. O desempenho insatisfatório de um relatório resulta em uma experiência de usuário negativa.

A captura de tela mostra fatores que afetam o desempenho do relatório.

Para otimizar o desempenho, você deve primeiro identificar a origem do problema; em outras palavras, descubra quais elementos do relatório e do modelo semântico estão causando os problemas de desempenho. Depois, você poderá tomar medidas para resolver esses problemas e, assim, melhorar o desempenho.

Identificar gargalos de desempenho do relatório

Para obter o desempenho ideal nos relatórios, você precisa criar um modelo semântico eficiente que dê suporte a consultas e medidas de execução rápida. Quando se tem uma boa base, você pode melhorar ainda mais o modelo analisando os planos de consulta e as dependências e, assim, fazendo alterações para otimizar o desempenho.

Você deve analisar as medidas e as consultas no modelo semântico para garantir que está usando a maneira mais eficiente de obter os resultados desejados. O ponto de partida deve ser identificar gargalos existentes no código. Ao identificar a consulta mais lenta no modelo semântico, você pode focar primeiro no maior gargalo e, em seguida, estabelecer uma lista de prioridades para resolver os outros problemas.

Analisar o desempenho

Você pode usar o Performance Analyzer, que é uma ferramenta do Power BI Desktop, para ajudar a descobrir como é o desempenho de cada um dos elementos do relatório quando os usuários interagem com eles. Por exemplo, você pode determinar quanto tempo leva para um determinado visual ser atualizado quando ele é iniciado por uma interação do usuário. A ferramenta ajudará a identificar todos os elementos que contribuem para os problemas de desempenho, o que pode ser útil durante a solução de problemas.

Antes de executar o Performance Analyzer, para garantir que você tenha os resultados mais precisos na análise (teste), não se esqueça de começar com um cache de visual e um cache de mecanismo de dados limpos.

  • Cache visual – Ao carregar um visual, você não consegue limpar o cache visual sem fechar e reabrir o Power BI Desktop. Para evitar qualquer cache em uso, você precisa iniciar sua análise com um cache de visual limpo.

    Para garantir que você tenha um cache de visual limpo, adicione uma página em branco ao arquivo do Power BI Desktop e, com essa página selecionada, salve e feche o arquivo. Reabra o arquivo do Power BI Desktop, que será aberto na página em branco.

  • Cache do mecanismo de dados – Quando uma consulta é executada, os resultados são armazenados em cache, de maneira que os resultados da análise podem ser enganosos. Você precisa limpar o cache de dados antes de reexecutar o visual.

    Para limpar o cache de dados, você pode reiniciar o Power BI Desktop ou conectar o DAX Studio ao modelo semântico e, em seguida, invocar a função Limpar Cache.

Depois que você tiver limpado os caches e aberto o arquivo do Power BI Desktop na página em branco, vá até a guia da faixa de opções Exibir e selecione Performance Analyzer.

Para começar o processo de análise, selecione Iniciar gravação, selecione a página do relatório que você deseja analisar e interaja com os elementos do relatório que deseja monitorar. Você verá os resultados das interações exibidos no painel Performance Analyzer enquanto estiver trabalhando. Quando você tiver terminado, selecione o botão Parar.

A captura de tela mostra o botão Iniciar do Performance Analyzer.

Para obter informações mais detalhadas, consulte Usar o Performance Analyzer para examinar o desempenho do elemento de relatório.

Analisar resultados

Você pode analisar os resultados do teste de desempenho no painel Performance Analyzer. Para examinar as tarefas por ordem de duração, da mais longa para a mais curta, clique com o botão direito do mouse no ícone Classificar ao lado do cabeçalho da coluna Duração (ms) e selecione Tempo total em ordem Decrescente.

A captura de tela mostra como classificar resultados no Analyzer.

As informações de log de cada visual mostram quanto tempo levou (duração) para concluir as seguintes categorias de tarefas:

  • Consulta DAX: o tempo necessário para o visual enviar a consulta, com o tempo necessário para o Power BI retornar os resultados.
  • Exibição de visual: o tempo necessário para o visual ser renderizado na tela, inclusive o tempo necessário para recuperar as imagens da Web ou o geocódigo.
  • Outros: o tempo que levou para o visual preparar consultas, aguardar a conclusão de outros visuais ou realizar outras tarefas de processamento em segundo plano. Se essa categoria exibir uma duração longa, a única maneira real de reduzir essa duração é otimizando as consultas DAX de outros visuais ou reduzir o número de visuais no relatório.

A captura de tela mostra as categorias em resultados do Performance Analyzer.

Os resultados ajudam a compreender o comportamento do modelo semântico e a identificar os elementos que precisam ser otimizados. Você pode comparar a duração de cada elemento no relatório e identificar os elementos que têm uma longa duração. Você deve se concentrar nesses elementos e investigar por que demora tanto tempo para eles serem carregados na página do relatório.

Para analisar mais detalhadamente as consultas, você pode usar o DAX Studio, que é uma ferramenta de código aberto gratuita fornecida por outro serviço.

Resolver os problemas e otimizar o desempenho

Os resultados da análise identificarão áreas para melhoria e oportunidades de otimização do desempenho. Talvez você ache que precisa realizar melhorias nos visuais, nos cálculos DAX ou em outros elementos do modelo semântico. As informações a seguir apresentam diretrizes sobre o que procurar e as alterações que você pode fazer.

Visuais

Se identificar visuais como o gargalo que acarreta mau desempenho, você precisará encontrar uma maneira de aprimorar o desempenho com um mínimo de impacto sobre a experiência do usuário.

Leve em consideração o número de visuais na página do relatório; menos visuais significam um desempenho melhor. Considere se um visual é realmente necessário e se ele agrega valor para o usuário final. Se a resposta for não, você deverá removê-lo. Em vez de usar vários visuais na página, leve em consideração outras maneiras de fornecer detalhes adicionais, como páginas detalhadas ou dicas de ferramenta de página de relatório.

Examine o número de campos em cada visual. Quanto mais visuais você tiver no relatório, maior será a chance de ter problemas de desempenho. Além disso, quanto mais visuais, mais o relatório poderá parecer poluído e perder clareza. Como o limite máximo de visuais é de 100 campos (medidas ou colunas), o carregamento de um visual com mais de 100 campos será lento. Considere se você realmente precisa de todos esses dados em um visual. Talvez você conclua que pode reduzir o número de campos usados no momento.

Consulta DAX

Ao examinar os resultados no painel Performance Analyzer, você pode ver quanto tempo o mecanismo do Power BI Desktop demorou para avaliar cada consulta (em milissegundos). Um bom ponto de partida é qualquer consulta DAX que demore mais de 120 milissegundos. Neste exemplo, você identifica uma consulta em especial que tenha uma duração longa.

A captura de tela mostra um exemplo de um tempo de duração longo no Performance Analyzer.

O Performance Analyzer destaca possíveis problemas, mas não informa o que precisa ser feito para resolvê-los. Convém realizar mais investigações para saber por que essa medida demora tanto para ser processada. Você pode usar o DAX Studio para investigar mais detalhadamente as consultas.

Por exemplo, selecione Copiar Consulta para copiar a fórmula de cálculo na área de transferência e, em seguida, cole-a no DAX Studio. Em seguida, você pode analisar mais detalhadamente a etapa de cálculo. Neste exemplo, você está tentando contar o número total de produtos com quantidades de pedidos superiores ou iguais a cinco.

Count Customers =
CALCULATE(
    DISTINCTCOUNT(Order[ProductID]),
    FILTER (Order, Order[OrderQty] >= 5)
)

Depois de analisar a consulta, você poderá usar seu próprio conhecimento e experiência para identificar onde estão os problemas de desempenho. Você também pode tentar usar funções DAX diferentes para verificar se elas melhoram o desempenho. No exemplo a seguir, a função FILTER foi substituída pela função KEEPFILTER. Quando o teste foi executado novamente no Performance Analyzer, a duração foi mais curta em razão da função substituída.

Count Customers =
CALCULATE(
    DISTINCTCOUNT(Order[ProductID]),
    KEEPFILTERS(Order[OrderQty] >= 5)
)

Nesse caso, você pode substituir a função FILTER pela função KEEPFILTER para reduzir significativamente a duração da avaliação dessa consulta. Depois de fazer essa alteração, para verificar se a duração melhorou ou não, limpe o cache de dados e repita o processo do Performance Analyzer.

A captura de tela mostra um exemplo do tempo de duração curto no Performance Analyzer.

Modelo semântico

Se a duração das medidas e dos visuais exibirem valores baixos (em outras palavras, eles têm duração curta), eles não serão o motivo dos problemas de desempenho. Em vez disso, se a consulta DAX exibir um valor alto de duração, é provável que uma medida esteja mal escrita ou que tenha ocorrido algum problema com o modelo semântico. O problema pode ser causado pelos relacionamentos, colunas ou metadados no modelo, ou pode ser que a opção Data/hora automática esteja habilitada, conforme descrito na seção a seguir.

Relacionamentos

Você deve analisar os relacionamentos de modelo entre as tabelas para garantir que tenha estabelecido os relacionamentos corretos. Verifique se as propriedades de cardinalidade do relacionamento foram configuradas corretamente. Por exemplo, uma coluna de um lado que contém valores exclusivos pode estar configurada incorretamente como uma coluna de muitos lados. Você saberá mais sobre como a cardinalidade afeta o desempenho posteriormente neste módulo.

Colunas

É prática recomendada não importar colunas de dados desnecessárias. Para evitar excluir colunas no Power Query, você deve tentar resolvê-las na origem ao carregar dados no Power BI Desktop. No entanto, se for impossível remover colunas redundantes da consulta de origem ou se os dados já tiverem sido importados em estado bruto, você sempre poderá usar o Power Query para examinar cada coluna. Considere se você realmente precisa de cada coluna e tente identificar o benefício que cada uma adiciona ao modelo semântico. Se achar que uma coluna não agrega valor, você deverá removê-la do modelo semântico. Por exemplo, vamos supor que você tem uma coluna de ID com milhares de linhas exclusivas. Você sabe que não usará essa coluna específica em um relacionamento, logo, ela não será usada em um relatório. Por isso, você deve concluir que essa coluna é desnecessária e admitir que ela só está ocupando espaço no modelo semântico.

Ao remover uma coluna desnecessária, você reduz o tamanho do modelo semântico, o que, por sua vez, resulta em um arquivo menor e um tempo de atualização menor. Além disso, como o modelo semântico contém apenas dados relevantes, o desempenho geral do relatório deverá melhorar.

Para obter mais informações, consulte Técnicas de redução dos dados para importação de modelagem.

Metadados

Metadados são informações sobre outros dados. Os metadados do Power BI contêm informações sobre o modelo semântico, como o nome, o tipo de dados e o formato de cada uma das colunas, o esquema do banco de dados, o design do relatório, quando o arquivo foi modificado pela última vez, as taxas de atualização de dados, entre outras.

Quando você carrega dados no Power BI Desktop, é ideal analisar os metadados correspondentes, de maneira que seja possível identificar eventuais inconsistências com o modelo semântico e normalizar os dados antes de começar a criar relatórios. A execução da análise nos metadados deve melhorar o desempenho do modelo semântico porque, ao analisar os metadados, você possivelmente identificará colunas desnecessárias, erros nos dados, tipos de dados incorretos, o volume de dados que está sendo carregado (modelos semânticos grandes, inclusive dados transacionais ou históricos, levarão mais tempo para carregar) e muito mais.

Você pode usar o Power Query no Power BI Desktop para examinar colunas, linhas e valores dos seus dados de origem. Em seguida, você pode usar as ferramentas disponíveis, como as realçadas na imagem a seguir, para fazer as alterações necessárias.

A captura de tela mostra as opções da guia da faixa de opções Página inicial na janela do Editor do Power Query, que são descritas no parágrafo a seguir.

Entre as opções do Power Query estão:

  • Colunas desnecessárias: avalia a necessidade de cada coluna. Se uma ou mais colunas não forem usadas no relatório e, portanto, forem desnecessárias, você deverá removê-las usando a opção Remover Colunas.

  • Linhas desnecessárias: examina as primeiras linhas no modelo semântico para saber se estão vazias ou se contêm dados desnecessários para os relatórios; em caso afirmativo, essas linhas serão removidas com a opção Remover Linhas.

  • Tipo de dados: avalia os tipos de dados da coluna para garantir que todos estejam corretos. Se você identificar um tipo de dados incorreto, altere-o selecionando a coluna, selecionando Tipo de Dados na guia da faixa de opções Transformar e selecionando o tipo de dados correto na lista.

  • Nomes de consulta: examina os nomes de consulta (tabela) no painel Consultas. Assim como fez com os nomes de cabeçalho da coluna, você deve substituir os nomes de consulta incomuns ou inúteis por nomes que sejam mais óbvios ou com os quais o usuário esteja mais familiarizado. Você pode renomear uma consulta clicando nela com o botão direito do mouse, selecionando Renomear, editando o nome conforme necessário e pressionando Enter.

  • Detalhes da coluna: o Power Query tem as três opções de visualização dos dados a seguir que você pode usar para analisar os metadados associados às colunas. Você pode encontrar essas opções na guia da faixa de opções Exibir, conforme mostrado na captura de tela a seguir.

    • Qualidade da coluna: determina a porcentagem de itens na coluna que são válidos, têm erros ou estão vazios. Se a porcentagem válida não for 100, você deverá investigar o motivo, corrigir os erros e preencher os valores vazios.
    • Distribuição da coluna: exibe a frequência e a distribuição dos valores em cada uma das colunas. Você investigará isso mais adiante neste módulo.
    • Perfil da coluna: mostra o gráfico de estatísticas da coluna e um gráfico de distribuição das colunas.

A captura de tela mostra as opções de perfil da coluna na janela Editor do Power Query.

Observação

Se estiver examinando uma consulta com mais de 1.000 linhas e quiser analisar todo esse modelo semântico, você precisará alterar a opção padrão na parte inferior da janela. Selecione Criação de perfil da coluna com base nas 1.000 primeiras linhas>Criação de perfil da coluna com base em todo o conjunto de dados.

A captura de tela mostra as linhas de perfil da coluna na janela Editor do Power Query.

Outros metadados que você deve levar em consideração são as informações sobre o modelo semântico como um todo, como o tamanho do arquivo e as taxas de atualização dos dados. Você pode encontrar esses metadados no arquivo do Power BI Desktop (.pbix) associado. Os dados carregados por você no Power BI Desktop são compactados e armazenados no disco pelo mecanismo de armazenamento VertiPaq. O tamanho do modelo semântico tem um impacto direto sobre o desempenho; um modelo semântico de tamanho menor usa menos recursos (memória) e obtém uma atualização de dados, cálculos e renderização de visuais mais rápidos em relatórios.

Recurso de data/hora automática

Outro item a ser levado em consideração durante a otimização do desempenho é a opção Data/hora automática no Power BI Desktop. Por padrão, esse recurso é habilitado globalmente, o que significa que o Power BI Desktop cria automaticamente uma tabela calculada oculta para cada coluna de data, desde que determinadas condições sejam atendidas. As novas tabelas ocultas vão além das tabelas que você já tem no modelo semântico.

A opção Data/hora automática permite a você trabalhar com inteligência de dados temporais ao filtrar, agrupar e analisar detalhadamente períodos do calendário. Só é recomendável manter a opção Data/hora automática habilitada quando você trabalha com períodos do calendário e quando tem requisitos de modelo simplistas em relação ao tempo.

Se a fonte de dados já definir uma tabela de dimensões de data, essa tabela deverá ser usada para definir o tempo de maneira consistente dentro da organização. Além disso, você deve desabilitar a opção Data/hora automática global. A desabilitação dessa opção pode diminuir o tamanho do modelo semântico e reduzir o tempo de atualização.

Você pode habilitar/desabilitar globalmente a opção Data/hora automática, de maneira que ela se aplique a todos os arquivos do Power BI Desktop, ou pode habilitar/desabilitar a opção para o arquivo atual, de maneira que ela se aplique apenas a um arquivo individual.

Para habilitar/desabilitar a opção Data/hora automática, vá até Arquivo>Opções e configurações>Opções e selecione a página Global ou Arquivo Atual. Em qualquer uma das páginas, selecione Carregamento de Dados e, na seção Inteligência de Dados Temporais, marque ou desmarque a caixa de seleção conforme necessário.

Captura de tela mostra como configurar data/hora automática.

Para obter uma visão geral e uma introdução geral ao recurso Data e hora automática, consulte Aplicar data/hora automática em Power BI Desktop.