Analisar o desempenho de medidas, relacionamentos e visuais
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 acarreta uma experiência negativa do usuário.
Para otimizar o desempenho, você deve primeiro identificar de onde o problema está vindo; 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 tenha consultas e medidas de execução rápida. Quando 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 se concentrar primeiro no maior gargalo e estabelecer uma lista de prioridades para resolver os outros problemas.
Analisar desempenho
Você pode usar o Performance Analyzer no Power BI Desktop ajudar a descobrir 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. O Performance Analyzer ajudará a identificar 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 os resultados mais precisos na análise (teste), não se esqueça de começar com um cache 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 uma interferência no cache, você precisa começar a análise com um cache visual limpo.
Para garantir que você tenha um cache visual limpo, adicione uma página em branco ao arquivo do Power BI Desktop (.pbix) e, com essa página selecionada, salve e feche o arquivo. Reabra o arquivo do Power BI Desktop (.pbix) que você deseja analisar. Ele 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 serão 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, chamar 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 Exibir e selecione a opção 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 medir. Você verá os resultados das interações exibidos no painel Performance Analyzer enquanto estiver trabalhando. Quando você tiver terminado, selecione o botão Parar.
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.
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 Analysis Services 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.
Os resultados do teste de análise 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 livre 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, na consulta DAX ou em outros elementos no 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á remover esse visual. Em vez de usar vários visuais na página, leve em consideração outras maneiras de dar detalhes adicionais, como páginas detalhadas e dicas de ferramenta da página do 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), um visual com mais de 100 campos vai demorar para carregar. 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.
O Performance Analyzer realça problemas em potencial, mas não informa o que precisa ser feito para melhorá-los. Convém realizar mais investigações sobre o motivo pelo qual essa medida demora muito para ser processada. Você pode usar o DAX Studio para investigar mais detalhadamente as consultas.
Por exemplo, selecione Copiar Consulta a fim de copiar a fórmula de cálculo para a á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 maiores ou iguais a cinco.
Count Customers =
CALCULATE (
DISTINCTCOUNT ( Order[ProductID] ),
FILTER ( Order, Order[OrderQty] >= 5 )
)
Depois de analisar a consulta, você poderá usar o próprio conhecimento e a própria experiência para identificar onde estão os problemas de desempenho. Você também pode tentar usar funções DAX diferentes para saber se elas melhoram o desempenho. No exemplo a seguir, a função FILTER foi substituída pela função KEEPFILTER. Quando o teste foi reexecutado no Performance Analyzer, a duração foi mais curta por causa da função KEEPFILTER.
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 reexecute o processo do Performance Analyzer.
Modelo semântico
Se a duração das medidas e dos visuais estiverem exibindo 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 estiver exibindo um valor de duração alto, a probabilidade será de uma medida mal gravada ou a ocorrência de um problema no modelo semântico. O problema pode ser causado pelos relacionamentos, pelas colunas ou pelos metadados no modelo, ou ele pode ser o status da opção Data/hora automática, conforme explicado na seção a seguir.
Relacionamentos
Você deve analisar os relacionamentos entre as tabelas para garantir que você tenha estabelecido os relacionamentos corretos. Verifique se as propriedades de cardinalidade do relacionamento estão 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
É melhor prática não importar colunas de dados das quais você não precise. Para evitar excluir colunas no Editor do 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 Editor do 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 em especial em um relacionamento, logo, ela não será usada em um relatório. Por isso, você deve levar em consideração essa coluna como desnecessária e admitir que ela está desperdiçando espaço no modelo semântico.
Ao remover uma coluna desnecessária, você reduzirá o tamanho do modelo semântico, o que, por sua vez, acarreta um tamanho de arquivo menor e um tempo de atualização menor. Além disso, como o modelo semântico só contém dados relevantes, o desempenho geral do relatório será melhorado.
Para obter mais informações, consulte Técnicas de redução dos dados para modelagem de importação.
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 e muito mais.
Quando você carrega dados no Power BI Desktop, é uma boa prática analisar os metadados correspondentes, de maneira que você possa identificar eventuais inconsistências com o modelo semântico e normalizar os dados antes de começar a compilar relatórios. A execução da análise nos metadados vai melhorar o desempenho do modelo semântico porque, ao analisar os metadados, você identificará colunas desnecessárias, erros dentro dos 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 Editor do Power Query no Power BI Desktop para examinar colunas, linhas e valores dos dados brutos. Em seguida, você poderá usar as ferramentas disponíveis, como as realçadas na captura de tela a seguir, para fazer as alterações necessárias.
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, por isso, forem desnecessárias, você deverá removê-las usando a opção Remover Colunas na guia Página Inicial.
Linhas desnecessárias: verifica as primeiras linhas no modelo semântico para saber se estão vazias ou se contêm dados dos quais você não precisa nos relatórios; em caso afirmativo, ele remove essas linhas usando a opção Remover Linhas na guia Página Inicial.
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, Tipo de Dados na guia Transformar e 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 Editor do Power Query tem as três opções de versão preliminar dos dados a seguir que você pode usar para analisar os metadados associados às colunas. Você pode encontrar essas opções na guia Exibir, conforme ilustrado na captura de tela a seguir.
Qualidade da coluna: determina qual percentual de itens na coluna são válidos, têm erros ou estão vazios. Se o percentual válido não for 100, você deverá investigar o motivo, corrigir os erros e popular 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 posteriormente neste módulo.
Perfil da coluna: mostra o gráfico de estatísticas da coluna e um gráfico de distribuição das colunas.
Observação
Se estiver examinando um modelo semântico grande 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 inteiro.
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 essa opção Data/hora automática, de maneira que ela se aplique a todos os arquivos do Power BI Desktop, ou você pode habilitar/desabilitar a opção para o arquivo atual, de maneira que ela só se aplique a um arquivo individual.
Para habilitar/desabilitar essa 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.
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.